一 threading模块介绍
multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍
thread模块 python不推荐使用这个模块,推荐更高级的threading。 thread模块和对象 函数 描述 start_new_thread(function,args) 产生新线程,指定函数和参数 allocate_lock() 分配一个LockType类型的锁对象 exit() 线程退出 LockType对象的方法 acquire() 尝试获取对象对象 locked 如果获取了返回True否则返回False release() 释放锁 thread.py #coding:utf-8 import thread from time import sleep,ctime loops=[4,2]#睡眠时间 def loop(nloop,nsec,lock): print 'start loop',nloop,'at:',ctime() sleep(nsec) print 'loop',nloop,'done at:',ctime() lock.release()#释放锁对象 def main(): print 'starting at :',ctime() locks=[] nloops=range(len(loops))#创建nloops数组 #创建锁并加入组 for i in nloops: lock=thread.allocate_lock()#创建 lock (不能直接加入) lock.acquire()#尝试获取lock locks.append(lock)#加入组 for i in nloops: thread.start_new_thread(loop,(i,loops[i],locks[i]))#创建线程 #获取锁对象 成功True 失败False for i in nloops: while locks[i].locked():pass#如果锁对象被释放 表示解锁了 可以继续执行 print 'all DONE at:',ctime() if __name__ == '__main__': main()