1、避免使用thread 使用threading
2、threading模块中的对象
3、Thread方法:name,start(),run(),join,getName
4、实例
使用类来初始化
派生的方法调用
5、threading模块中的其他方法
6、单线程和多线程对比
7、IO密集型用多线程,计算密集型用多进程
8、使用锁
from threading import Thread, Lock, currentThread
lock = Lock()
def loop(nsec):
myname = currentThread().name
lock.acquire()
remaining.add(myname)
print '[%s] Started %s' % (ctime(), myname)
lock.release()
sleep(nsec)
lock.acquire()
remaining.remove(myname)
print '[%s] Completed %s (%d secs)' % (ctime(), myname, nsec)
print ' (remaining: %s)' % (remaining or 'NONE')
lock.release()
9、使用锁的例子
// 使用with: with lock:
10、对于有限资源,使用信号量:BoundedSemaphore
11、Queue模块进行线程间通信
方法:
QUEUE:例子
if name=='main':
main()
12、高级模块:concurrent.futures
13、其他相关模块