1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#_*_coding:utf-8_*_
import
threading
from
time
import
sleep,ctime
#秒数
loops
=
[
4
,
2
]
#这个函数是模拟一个实实在在是用来干活的函数
def
loop(nloop,nsec):
print
"函数%s 启动时间:%s 等待秒数:%s \n"
%
(nloop,ctime(),nsec)
sleep(nsec)
#等待时间
def
main():
print
"主线程在 %s 开始启动...:"
%
ctime()
threads
=
[]
#这个列表用来存放创建的线程
nloops
=
range
(
len
(loops))
#把全局变量中的loops列表引进来,所生成的局部变量nloops作为索引
#顾nloops存储的是[0,1]
for
i
in
nloops:
t
=
threading.Thread(target
=
loop,args
=
(i,loops[i]))
#创建线程
threads.append(t)
#创建到线程累加存放到列表threads中
for
i
in
nloops:
threads[i].start()
#所有线程创建完之后,便利存放线程的列表,一起启动线程
for
i
in
nloops:
threads[i].join()
#程序挂起,直到线程结束,再也不用管理分配锁,获得锁,释放锁,检查锁到状态等令人纳闷到问题,只需调用join()函数就可以啦
print
"所有函数完成时间:"
, ctime()
if
__name__
=
=
'__main__'
:
main()
|
运行结果
/usr/bin/python2.7 /home/toby/PycharmProjects/SOMS/test2.py
主线程在 Wed Mar 1 19:59:53 2017 开始启动...:
函数0 启动时间:Wed Mar 1 19:59:53 2017 等待秒数:4
函数1 启动时间:Wed Mar 1 19:59:53 2017 等待秒数:2
所有函数完成时间: Wed Mar 1 19:59:57 2017
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1902532