#!/usr/bin/env python
import thread
from time import sleep, ctime
loops = [4,2]
def loop(nloop, nsec, lock):
print 'start loop', nloop, 'at:', ctime()打印开始nloop 创建时间
sleep(nsec)休眠时间
print 'loop', nloop, 'done at:', ctime()打印结束nloop 创建时间
lock.release()释放lock锁
def main():定义main()函数
print 'starting at:', ctime()打印开始 创建时间
locks = []定义locks列表
nloops = range(len(loops))nloops = [0, 1]
for i in nloops:循环nloops
lock = thread.allocate_lock()定义lock = 分配一个LockType 类型的锁对象
lock.acquire()获取lock 尝试获取锁对象
locks.append(lock)把获取的lock放到locks列表里面
for i in nloops:
thread.start_new_thread(loop, (i, loops[i], locks[i]))通过函数loop创建线程,分别传0 4 locks[0],然后执行
for i in nloops:循环nloops
while locks[i].locked(): pass如果获取了锁对象 执行站位
print 'all DONE at:', ctime()打印all done at 创建时间
if __name__ == '__main__':
main()
[root@localhost python]# ./mtsleep2.py
starting at: Sun Sep 15 07:17:04 2013
start loop 1 at: Sun Sep 15 07:17:04 2013
start loop 0 at: Sun Sep 15 07:17:04 2013
loop 1 done at: Sun Sep 15 07:17:06 2013
loop 0 done at: Sun Sep 15 07:17:08 2013
all DONE at: Sun Sep 15 07:17:08 2013
本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1297282,如需转载请自行联系原作者