python thread模块使用心得(包括lock锁)

#coding=utf8
import thread
from time import sleep,ctime

def loop0():
	print "loop0 start at:",ctime()
	sleep(4)
	print "loop0 end at",ctime()
	
def loop1(lock):#多线程传入锁对象
	print "loop1start at:",ctime()
	sleep(4)
	print "loop1 end at",ctime()
	lock.release()#循环结束后释放锁

def main():
	lock1 = thread.allocate_lock()#分配一个lockType的锁对象
	lock1.acquire()获取锁对象
	thread.start_new_thread(loop0,())
	thread.start_new_thread(loop1,(lock1,))
	while(lock1.locked()):#等待锁释放后跳出循环
		print "lock!"
		sleep(1)
	sleep(6)
	print "all down at",ctime()
	
if __name__=="__main__":
	main()

<span style="color:#33CC00;">>>> </span><pre name="code" class="html"><span style="color:#33CC00;">loop0 start at: Mon Nov 03 13:07:08 2014
loop1start at: Mon Nov 03 13:07:08 2014
lock!
lock!
lock!
lock!
loop1 end at Mon Nov 03 13:07:12 2014
loop0 end at Mon Nov 03 13:07:12 2014
all down at Mon Nov 03 13:07:18 2014</span>

备注:不提倡使用thread模块,因为thread模块会因为主线程提前退出导致分配的子线程提前结束。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值