|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
- #!/usr/bin/env python
- import thread
- from time import ctime,sleep,localtime,mktime
- def loop(n,time,lock):
- print("Loop%d starts at %s" % (n,str(ctime())))
- sleep(time)
- print("Loop%d stops at %s" % (n,str(ctime())))
- lock.release()
- def main():
- start=mktime(localtime())
- times=[1,2,3,4,5]
- locks=[]
- ns=range(len(times))
- for i in ns:
- lock=thread.allocate_lock()
- lock.acquire()
- locks.append(lock)
- for i in ns:
- thread.start_new_thread(loop,(i,times[i],locks[i]))
-
- while locks[len(times)-1].locked():
- pass
- stop=mktime(localtime())
- print("All stop at %s with %sS\n" % (str(ctime()),str(stop-start)))
- if __name__=="__main__":
- main()
复制代码
结果如下:
- Loop4 starts at Sun Sep 6 20:15:33 2015
- Loop2 starts at Sun Sep 6 20:15:33 2015
- Loop1 starts at Sun Sep 6 20:15:33 2015
- Loop3 starts at Sun Sep 6 20:15:33 2015
- Loop0 starts at Sun Sep 6 20:15:33 2015
- Loop0 stops at Sun Sep 6 20:15:34 2015
- Loop1 stops at Sun Sep 6 20:15:35 2015
- Loop2 stops at Sun Sep 6 20:15:36 2015
- Loop3 stops at Sun Sep 6 20:15:37 2015
- Loop4 stops at Sun Sep 6 20:15:38 2015
- All stop at Sun Sep 6 20:15:38 2015 with 5.0S
复制代码
问题如下:
为什么执行没有按照loop{0,1,2,3,4}执行?
是线程优先级的问题吗? |
|