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


Python thread.start_new_thread方法代码示例

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


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

示例1: knock

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def knock(self):

        self.client = network.client.Client()

        # Send AUTH request
        self.client.send({'type': 'loginreq','roomid': self.room_id})

        # Start a thread to send KEEPALIVE messages separately
        thread.start_new_thread(keep_alive, (self.client, KEEP_ALIVE_INTERVAL_SECONDS))

        # Handle messages
        for message in self.client.receive():

            if not message:
                continue

            # print json.dumps(message.body)
            msg_type = message.attr('type')

            # Send JOIN_GROUP request
            if msg_type == 'loginres':
                self.client.send({'type': 'joingroup', 'rid': self.room_id, 'gid': self.channel_id})

            self.trigger_callbacks(msg_type, message) 
开发者ID:yingnansong,项目名称:pydouyu,代码行数:26,代码来源:room.py

示例2: StartListener

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def StartListener(forwardingURL, localAddress, localPort, destAddress, destPort):
	#formattedAddress = str(localAddress) + ":" + str(localPort)
	formattedAddress = '%s:%s' % (localAddress, localPort)
	try:
		myserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		myserver.bind((localAddress, localPort))
		myserver.listen(2)
		#outputHandler.outputMessage('Server started')
		outputHandler.outputMessage('Listener ready to forward connections from %s to %s:%i via %s' % (formattedAddress, destAddress, destPort, forwardingURL))
		while runServer > 0:
			try:
				outputHandler.outputMessage('Waiting for client connection to %s' % (formattedAddress))
				client, addr = myserver.accept()
				outputHandler.outputMessage('Client connected to %s' %(formattedAddress))
				thread.start_new_thread(child, (client, addr, formattedAddress, forwardingURL, destAddress, destPort))
			except Exception as e:
				if "Closing connections" not in str(e):
					raise e
	except Exception as e:
		outputHandler.outputMessage('Error in listener on %s: %s' % (formattedAddress, e))
	outputHandler.outputMessage('Shutting down listener on %s' % (formattedAddress)) 
开发者ID:nccgroup,项目名称:ABPTTS,代码行数:23,代码来源:abpttsclient.py

示例3: handle_event

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def handle_event(self, event, sender, level, formatted_msg, data):
        if self.dbot is None:
            try:
                self.bot.logger.info("Discord bot not running, Starting..")
                self.dbot = DiscordClass(self.bot, self.master, self.pokemons, self.config)
                self.dbot.connect()
                thread.start_new_thread(self.dbot.run)
            except Exception as inst:
                self.dbot = None
                self.bot.logger.error("Unable to start Discord bot; master: {}, exception: {}".format(self.master, pprint.pformat(inst)))
                return
        # prepare message to send
        msg = None
        msg = self.chat_handler.get_event(event, formatted_msg, data)
        if msg:
            self.dbot.sendMessage(to=self.master, text=msg) 
开发者ID:PokemonGoF,项目名称:PokemonGo-Bot,代码行数:18,代码来源:discord_handler.py

示例4: create_desktop

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def create_desktop(desktop_name, start_explorer=1):
    """ Creates a new desktop and spawns a thread running on it
        Will also start a new icon thread on an existing desktop
    """
    sa=pywintypes.SECURITY_ATTRIBUTES()
    sa.bInheritHandle=1

    try:
        hdesk=win32service.CreateDesktop(desktop_name, 0, win32con.MAXIMUM_ALLOWED, sa)
    except win32service.error:
        traceback.print_exc()
        errbuf=cStringIO.StringIO()
        traceback.print_exc(None,errbuf)
        win32api.MessageBox(0, errbuf.getvalue(), 'Desktop creation failed')
        return
    if start_explorer:
        s=win32process.STARTUPINFO()
        s.lpDesktop=desktop_name
        prc_info=win32process.CreateProcess(None, "Explorer.exe",None,None,True,win32con.CREATE_NEW_CONSOLE,None,'c:\\',s)

    th=thread.start_new_thread(new_icon,(hdesk,desktop_name))
    hdesk.SwitchDesktop() 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:24,代码来源:desktopmanager.py

示例5: _setUp

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def _setUp(self):
        self.server_ready = threading.Event()
        self.client_ready = threading.Event()
        self.done = threading.Event()
        self.queue = Queue.Queue(1)

        # Do some munging to start the client test.
        methodname = self.id()
        i = methodname.rfind('.')
        methodname = methodname[i+1:]
        test_method = getattr(self, '_' + methodname)
        self.client_thread = thread.start_new_thread(
            self.clientRun, (test_method,))

        self.__setUp()
        if not self.server_ready.is_set():
            self.server_ready.set()
        self.client_ready.wait() 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:20,代码来源:test_socket.py

示例6: test_foreign_thread

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_foreign_thread(self):
        # Check that a "foreign" thread can use the threading module.
        def f(mutex):
            # Calling current_thread() forces an entry for the foreign
            # thread to get made in the threading._active map.
            threading.current_thread()
            mutex.release()

        mutex = threading.Lock()
        mutex.acquire()
        tid = thread.start_new_thread(f, (mutex,))
        # Wait for the thread to finish.
        mutex.acquire()
        self.assertIn(tid, threading._active)
        self.assertIsInstance(threading._active[tid], threading._DummyThread)
        del threading._active[tid]

    # PyThreadState_SetAsyncExc() is a CPython-only gimmick, not (currently)
    # exposed at the Python level.  This test relies on ctypes to get at it. 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:21,代码来源:test_threading.py

示例7: test_dummy_thread_after_fork

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_dummy_thread_after_fork(self):
        # Issue #14308: a dummy thread in the active list doesn't mess up
        # the after-fork mechanism.
        code = """if 1:
            import thread, threading, os, time

            def background_thread(evt):
                # Creates and registers the _DummyThread instance
                threading.current_thread()
                evt.set()
                time.sleep(10)

            evt = threading.Event()
            thread.start_new_thread(background_thread, (evt,))
            evt.wait()
            assert threading.active_count() == 2, threading.active_count()
            if os.fork() == 0:
                assert threading.active_count() == 1, threading.active_count()
                os._exit(0)
            else:
                os.wait()
        """
        _, out, err = assert_python_ok("-c", code)
        self.assertEqual(out, '')
        self.assertEqual(err, '') 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:27,代码来源:test_threading.py

示例8: test_makefile_refcount

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_makefile_refcount(self):
        "Ensures that the _socket stays open while there's still a file associated"
        
        def echoer(port):
            s = _socket.socket()
            s.bind(('localhost', port))
            s.listen(5)
            (s2, ignore) = s.accept()
            s2.send(s2.recv(10))
        
        port = 50008
        
        thread.start_new_thread(echoer, (port, ))
        time.sleep(0)
        s = _socket.socket()
        s.connect(('localhost', port))
        f1 = s.makefile('r')
        f2 = s.makefile('w')
        s.close()
        test_msg = 'abc\n'
        f2.write(test_msg)
        f2.flush()
        str = f1.readline()
        self.assertTrue(str==test_msg) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:26,代码来源:test__socket.py

示例9: test_stack_size

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_stack_size(self):
        import sys
        if is_cli or (sys.version_info[0] == 2 and sys.version_info[1] > 4) or sys.version_info[0] > 2:
            import thread
            
            size = thread.stack_size()
            self.assertTrue(size==0 or size>=32768)

            bad_size_list = [ 1, -1, -32768, -32769, -32767, -40000, 32767, 32766]
            for bad_size in bad_size_list:
                self.assertRaises(ValueError, thread.stack_size, bad_size)
                
            good_size_list = [4096*10, 4096*100, 4096*1000, 4096*10000]
            for good_size in good_size_list:
                #CodePlex Work Item 7827
                if is_cli and good_size<=50000: print "Ignoring", good_size, "for CLI"; continue
                temp = thread.stack_size(good_size)
                self.assertTrue(temp>=32768 or temp==0)
            
            def temp(): pass
            thread.start_new_thread(temp, ())
            temp = thread.stack_size(1024*1024)
            self.assertTrue(temp>=32768 or temp==0) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:25,代码来源:test_thread.py

示例10: starter

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def starter(events):
            def tracer(*args):
                events.append(args[1])
                return tracer
            def f1(): time.sleep(.25)
            def f2(): time.sleep(1)
            def f3(): time.sleep(.5)
            
            def test_thread():
                global done, failed
                try:
                    sys.settrace(tracer)
                    f1()
                    sys.settrace(None)
                    f2()
                    sys.settrace(tracer)
                    f3()
                except:
                    failed = True
                with lock: done += 1
                
            thread.start_new_thread(test_thread, ()) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:24,代码来源:test_sys_getframe.py

示例11: handle_error

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def handle_error(self):
		global server_missing_logged
		global rtl_tcp_connected
		rtl_tcp_connected=False
		exc_type, exc_value, exc_traceback = sys.exc_info()
		self.ok=False
		server_is_missing=hasattr(exc_value,"errno") and exc_value.errno==111
		if (not server_is_missing) or (not server_missing_logged):
			log.error("with rtl_tcp host connection: "+str(exc_value))
			#traceback.print_tb(exc_traceback)
			server_missing_logged|=server_is_missing
		try:
			self.close()
		except:
			pass
		thread.start_new_thread(rtl_tcp_asyncore_reset, (2,)) 
开发者ID:ha7ilm,项目名称:rtl_mus,代码行数:18,代码来源:rtl_mus.py

示例12: test_start_new_thread

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_start_new_thread(self):
        pydev_monkey.patch_thread_modules()
        try:
            found = {}
            def function(a, b, *args, **kwargs):
                found['a'] = a
                found['b'] = b
                found['args'] = args
                found['kwargs'] = kwargs
            thread.start_new_thread(function, (1,2,3,4), {'d':1, 'e':2})
            import time
            for _i in xrange(20):
                if len(found) == 4:
                    break
                time.sleep(.1)
            else:
                raise AssertionError('Could not get to condition before 2 seconds')

            self.assertEqual({'a': 1, 'b': 2, 'args': (3, 4), 'kwargs': {'e': 2, 'd': 1}}, found)
        finally:
            pydev_monkey.undo_patch_thread_modules() 
开发者ID:fabioz,项目名称:PyDev.Debugger,代码行数:23,代码来源:test_additional_thread_info.py

示例13: test_init_once_multithread

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_init_once_multithread(self):
        import sys, time
        if sys.version_info < (3,):
            import thread
        else:
            import _thread as thread
        #
        def do_init():
            seen.append('init!')
            time.sleep(1)
            seen.append('init done')
            return 7
        ffi = FFI()
        seen = []
        for i in range(6):
            def f():
                res = ffi.init_once(do_init, "tag")
                seen.append(res)
            thread.start_new_thread(f, ())
        time.sleep(1.5)
        assert seen == ['init!', 'init done'] + 6 * [7] 
开发者ID:johncsnyder,项目名称:SwiftKitten,代码行数:23,代码来源:backend_tests.py

示例14: _run_in_multiple_threads

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def _run_in_multiple_threads(test1):
    test1()
    import sys
    try:
        import thread
    except ImportError:
        import _thread as thread
    errors = []
    def wrapper(lock):
        try:
            test1()
        except:
            errors.append(sys.exc_info())
        lock.release()
    locks = []
    for i in range(10):
        _lock = thread.allocate_lock()
        _lock.acquire()
        thread.start_new_thread(wrapper, (_lock,))
        locks.append(_lock)
    for _lock in locks:
        _lock.acquire()
        if errors:
            raise errors[0][1] 
开发者ID:johncsnyder,项目名称:SwiftKitten,代码行数:26,代码来源:test_verify.py

示例15: test_init_once_multithread

# 需要导入模块: import thread [as 别名]
# 或者: from thread import start_new_thread [as 别名]
def test_init_once_multithread():
    if sys.version_info < (3,):
        import thread
    else:
        import _thread as thread
    import time
    #
    def do_init():
        print('init!')
        seen.append('init!')
        time.sleep(1)
        seen.append('init done')
        print('init done')
        return 7
    ffi = _cffi1_backend.FFI()
    seen = []
    for i in range(6):
        def f():
            res = ffi.init_once(do_init, "tag")
            seen.append(res)
        thread.start_new_thread(f, ())
    time.sleep(1.5)
    assert seen == ['init!', 'init done'] + 6 * [7] 
开发者ID:johncsnyder,项目名称:SwiftKitten,代码行数:25,代码来源:test_ffi_obj.py


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