python threading 两种创建方式
作用:建立在thread模块之上,可以更容易地管理多个执行线程。
通过使用线程,程序可以在同一个进程空间并发地运行多个操作。threading模块建立在thread的底层特性基础上,可以更容易地完成线程处理。
1、调用函数
要使用Thread,最简单的方法就是用一个目标函数实例化一个Thread对象,并调用start()让它开始工作。
1 import threading 2 3 def worker(num): 4 print 'worker' 5 return 6 7 threads = [] 8 for i in range(5): 9 t = threading.Thread(target=worker, args=(i,)) 10 threads.append(t) 11 t.start
2、派生进程
开始时,Thread要完成一些基本初始化,然后调用其run()方法,这会调用传递到构造函数的目标函数。要创建Thrad的一个子类,需要覆盖run()来完成所需的工作。
1 import threading 2 import logging 3 4 logging.basicConfig(level=logging.DEBUG, 5 format='(%(threadName)-10s) %(message)s', 6 ) 7 8 class MyThread(threading.Thread): 9 10 def run(self): 11 logging.debug('running') 12 return 13 14 for i in range(5): 15 t = MyThread() 16 t.start()
参考:
《python 标准库》 10.3.5 派生线程(p412)