|
|

楼主 |
发表于 2015-7-2 11:04:07
|
显示全部楼层
本帖最后由 赢在未来° 于 2015-7-2 11:05 编辑
以下为猜测,不知道对不对~~~
大致有点懂了,因为每个线程的创建都需要开销,创建最后一个线程会花费一些开销,而这时主线程已经执行完了
代码可以这样改一下:
- #!/usr/bin/env python
- import threading
- import time
- class MyThread(threading.Thread):
- def __init__(self,event):
- threading.Thread.__init__(self)
- self.event = event
- def run(self):
- if not self.event.isSet():
- self.event.wait()
- print '{0} is awaked!'.format(self.getName())
- event = threading.Event()
- event.clear()
- thlist = []
- for i in range(1,5):
- i = MyThread(event)
- thlist.append(i)
- for i in thlist:
- # i.setDaemon(True)
- print '{0} is start...'.format(i)
- i.start()
- print 'Sleep 1 second..'
- time.sleep(1)
- event.set()
复制代码
- root@localhost:~# python test.py
- <MyThread(Thread-1, initial)> is start...
- <MyThread(Thread-2, initial)> is start...
- <MyThread(Thread-3, initial)> is start...
- <MyThread(Thread-4, initial)> is start...
- Sleep 1 second..
- Thread-1 is awaked!
- Thread-2 is awaked!
- Thread-3 is awaked!
- Thread-4 is awaked!
复制代码 |
|