python之多线程threading模块

本文介绍了一个使用Python实现的简单多线程示例。通过创建两个不同等待时间的线程,展示了如何启动线程、等待线程结束,并确保主线程能够正确管理这些子线程。
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 in nloops:
        = threading.Thread(target=loop,args=(i,loops[i])) #创建线程
        threads.append(t)   #创建到线程累加存放到列表threads中
 
    for in nloops:
        threads[i].start() #所有线程创建完之后,便利存放线程的列表,一起启动线程
 
    for 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值