当前位置: 首页>>代码示例>>Python>>正文


Python Thread.start方法代码示例

本文整理汇总了Python中syncdutils.Thread.start方法的典型用法代码示例。如果您正苦于以下问题:Python Thread.start方法的具体用法?Python Thread.start怎么用?Python Thread.start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在syncdutils.Thread的用法示例。


在下文中一共展示了Thread.start方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: start_checkpoint_thread

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def start_checkpoint_thread(self):
     """prepare and start checkpoint service"""
     if self.checkpoint_thread or not getattr(gconf, "state_socket_unencoded", None):
         return
     chan = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     state_socket = "/tmp/%s.socket" % md5(gconf.state_socket_unencoded).hexdigest()
     try:
         os.unlink(state_socket)
     except:
         if sys.exc_info()[0] == OSError:
             pass
     chan.bind(state_socket)
     chan.listen(1)
     checkpt_tgt = None
     if gconf.checkpoint:
         checkpt_tgt = self._checkpt_param(gconf.checkpoint, "target")
         if not checkpt_tgt:
             checkpt_tgt = self.xtime(".")
             if isinstance(checkpt_tgt, int):
                 raise GsyncdError("master root directory is unaccessible (%s)", os.strerror(checkpt_tgt))
             self._set_checkpt_param(gconf.checkpoint, "target", checkpt_tgt)
         logging.debug(
             "checkpoint target %s has been determined for checkpoint %s" % (repr(checkpt_tgt), gconf.checkpoint)
         )
     t = Thread(target=self.checkpt_service, args=(chan, gconf.checkpoint, checkpt_tgt))
     t.start()
     self.checkpoint_thread = t
开发者ID:ngtuna,项目名称:glusterfs,代码行数:29,代码来源:master.py

示例2: crawl_loop

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def crawl_loop(self):
     timo = int(gconf.timeout or 0)
     if timo > 0:
         def keep_alive():
             while True:
                 gap = timo * 0.5
                 # first grab a reference as self.volinfo
                 # can be changed in main thread
                 vi = self.volinfo
                 if vi:
                     # then have a private copy which we can mod
                     vi = vi.copy()
                     vi['timeout'] = int(time.time()) + timo
                 else:
                     # send keep-alives more frequently to
                     # avoid a delay in announcing our volume info
                     # to slave if it becomes established in the
                     # meantime
                     gap = min(10, gap)
                 self.slave.server.keep_alive(vi)
                 time.sleep(gap)
         t = Thread(target=keep_alive)
         t.start()
     self.lastreport['time'] = time.time()
     while not self.terminate:
         self.crawl()
开发者ID:vbellur,项目名称:glusterfs,代码行数:28,代码来源:master.py

示例3: multiplex

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
    def multiplex(self, wspx, suuid):
        argv = sys.argv[:]
        for o in ("-N", "--no-daemon", "--monitor"):
            while o in argv:
                argv.remove(o)
        argv.extend(("-N", "-p", "", "--slave-id", suuid))
        argv.insert(0, os.path.basename(sys.executable))

        cpids = set()
        agents = set()
        ta = []
        for wx in wspx:

            def wmon(w):
                cpid, _ = self.monitor(w, argv, cpids, agents)
                time.sleep(1)
                self.lock.acquire()
                for cpid in cpids:
                    os.kill(cpid, signal.SIGKILL)
                self.lock.release()
                finalize(exval=1)

            t = Thread(target=wmon, args=[wx])
            t.start()
            ta.append(t)
        for t in ta:
            t.join()
开发者ID:reesun,项目名称:glusterfs,代码行数:29,代码来源:monitor.py

示例4: __init__

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def __init__(self, slave):
     self.slave = slave
     self.lock = Lock()
     self.pb = PostBox()
     for i in range(int(gconf.sync_jobs)):
         t = Thread(target=self.syncjob)
         t.start()
开发者ID:vbellur,项目名称:glusterfs,代码行数:9,代码来源:master.py

示例5: multiplex

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
    def multiplex(self, wspx, suuid, slave_vol, slave_host, master):
        argv = sys.argv[:]
        for o in ('-N', '--no-daemon', '--monitor'):
            while o in argv:
                argv.remove(o)
        argv.extend(('-N', '-p', '', '--slave-id', suuid))
        argv.insert(0, os.path.basename(sys.executable))

        cpids = set()
        agents = set()
        ta = []
        for wx in wspx:
            def wmon(w):
                cpid, _ = self.monitor(w, argv, cpids, agents, slave_vol,
                                       slave_host, master)
                time.sleep(1)
                self.lock.acquire()
                for cpid in cpids:
                    errno_wrap(os.kill, [cpid, signal.SIGKILL], [ESRCH])
                for apid in agents:
                    errno_wrap(os.kill, [apid, signal.SIGKILL], [ESRCH])
                self.lock.release()
                finalize(exval=1)
            t = Thread(target=wmon, args=[wx])
            t.start()
            ta.append(t)
        for t in ta:
            t.join()
开发者ID:Byreddys,项目名称:glusterfs,代码行数:30,代码来源:monitor.py

示例6: __init__

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def __init__(self, slave):
     """spawn worker threads"""
     self.slave = slave
     self.lock = Lock()
     self.pb = PostBox()
     self.bytes_synced = 0
     for i in range(int(gconf.sync_jobs)):
         t = Thread(target=self.syncjob)
         t.start()
开发者ID:csabahenk,项目名称:glusterfs,代码行数:11,代码来源:master.py

示例7: service_loop

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def service_loop(self):
     for i in range(self.wnum):
         t = Thread(target=self.worker)
         t.start()
     try:
         while True:
             self.q.put(recv(self.inf))
     except EOFError:
         logging.info("terminating on reaching EOF.")
开发者ID:Gaurav-Gangalwar,项目名称:glusterfs,代码行数:11,代码来源:repce.py

示例8: service_loop

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def service_loop(self):
     """fire up worker threads, get messages and dispatch among them"""
     for i in range(self.wnum):
         t = Thread(target=self.worker)
         t.start()
     try:
         while True:
             self.q.put(recv(self.inf))
     except EOFError:
         logging.info("terminating on reaching EOF.")
开发者ID:raghavendrabhat,项目名称:glusterfs,代码行数:12,代码来源:repce.py

示例9: init_keep_alive

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def init_keep_alive(cls):
     """start the keep-alive thread """
     timo = int(gconf.timeout or 0)
     if timo > 0:
         def keep_alive():
             while True:
                 vi, gap = cls.keepalive_payload_hook(timo, timo * 0.5)
                 cls.slave.server.keep_alive(vi)
                 time.sleep(gap)
         t = Thread(target=keep_alive)
         t.start()
开发者ID:AsherBond,项目名称:snap-shot-glusterfs,代码行数:13,代码来源:master.py

示例10: crawl_loop

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def crawl_loop(self):
     """start the keep-alive thread and iterate .crawl"""
     timo = int(gconf.timeout or 0)
     if timo > 0:
         def keep_alive():
             while True:
                 vi, gap = self.keepalive_payload_hook(timo, timo * 0.5)
                 self.slave.server.keep_alive(vi)
                 time.sleep(gap)
         t = Thread(target=keep_alive)
         t.start()
     self.lastreport['time'] = time.time()
     while not self.terminate:
         self.crawl()
开发者ID:baturu,项目名称:glusterfs-analysis,代码行数:16,代码来源:master.py

示例11: multiplex

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
    def multiplex(self, wspx, suuid):
        def sigcont_handler(*a):
            """
            Re-init logging and send group kill signal
            """
            md = gconf.log_metadata
            logging.shutdown()
            lcls = logging.getLoggerClass()
            lcls.setup(label=md.get('saved_label'), **md)
            pid = os.getpid()
            os.kill(-pid, signal.SIGUSR1)
        signal.signal(signal.SIGUSR1, lambda *a: ())
        signal.signal(signal.SIGCONT, sigcont_handler)

        argv = sys.argv[:]
        for o in ('-N', '--no-daemon', '--monitor'):
            while o in argv:
                argv.remove(o)
        argv.extend(('-N', '-p', '', '--slave-id', suuid))
        argv.insert(0, os.path.basename(sys.executable))

        cpids = set()
        ta = []
        for wx in wspx:
            def wmon(w):
                cpid, _ = self.monitor(w, argv, cpids)
                terminate()
                time.sleep(1)
                self.lock.acquire()
                for cpid in cpids:
                    os.kill(cpid, signal.SIGKILL)
                self.lock.release()
                finalize(exval=1)
            t = Thread(target = wmon, args=[wx])
            t.start()
            ta.append(t)
        for t in ta:
            t.join()
开发者ID:csabahenk,项目名称:glusterfs,代码行数:40,代码来源:monitor.py

示例12: multiplex

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
    def multiplex(self, wspx, suuid, slave_vol, slave_host, master, slavenodes):
        argv = [os.path.basename(sys.executable), sys.argv[0]]

        cpids = set()
        agents = set()
        ta = []
        for wx in wspx:
            def wmon(w):
                cpid, _ = self.monitor(w, argv, cpids, agents, slave_vol,
                                       slave_host, master, suuid, slavenodes)
                time.sleep(1)
                self.lock.acquire()
                for cpid in cpids:
                    errno_wrap(os.kill, [cpid, signal.SIGKILL], [ESRCH])
                for apid in agents:
                    errno_wrap(os.kill, [apid, signal.SIGKILL], [ESRCH])
                self.lock.release()
                finalize(exval=1)
            t = Thread(target=wmon, args=[wx])
            t.start()
            ta.append(t)
        for t in ta:
            t.join()
开发者ID:raghavendrabhat,项目名称:glusterfs,代码行数:25,代码来源:monitor.py

示例13: multiplex

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
    def multiplex(self, wspx, suuid, slave_vol, slave_host, master, slavenodes):
        argv = [os.path.basename(sys.executable), sys.argv[0]]

        cpids = set()
        agents = set()
        ta = []
        for wx in wspx:
            def wmon(w):
                cpid, _ = self.monitor(w, argv, cpids, agents, slave_vol,
                                       slave_host, master, suuid, slavenodes)
                time.sleep(1)
                self.lock.acquire()
                for cpid in cpids:
                    errno_wrap(os.kill, [cpid, signal.SIGKILL], [ESRCH])
                for apid in agents:
                    errno_wrap(os.kill, [apid, signal.SIGKILL], [ESRCH])
                self.lock.release()
                finalize(exval=1)
            t = Thread(target=wmon, args=[wx])
            t.start()
            ta.append(t)

        # monitor status was being updated in each monitor thread. It
        # should not be done as it can cause deadlock for a worker start.
        # set_monitor_status uses flock to synchronize multple instances
        # updating the file. Since each monitor thread forks worker and
        # agent, these processes can hold the reference to fd of status
        # file causing deadlock to workers which starts later as flock
        # will not be release until all references to same fd is closed.
        # It will also cause fd leaks.

        self.lock.acquire()
        set_monitor_status(gconf.get("state-file"), self.ST_STARTED)
        self.lock.release()
        for t in ta:
            t.join()
开发者ID:amarts,项目名称:glusterfs,代码行数:38,代码来源:monitor.py

示例14: __init__

# 需要导入模块: from syncdutils import Thread [as 别名]
# 或者: from syncdutils.Thread import start [as 别名]
 def __init__(self, i, o):
     self.inf, self.out = ioparse(i, o)
     self.jtab = {}
     t = Thread(target=self.listen)
     t.start()
开发者ID:raghavendrabhat,项目名称:glusterfs,代码行数:7,代码来源:repce.py


注:本文中的syncdutils.Thread.start方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。