python thread 并发且顺序运行示例


Posted in Python onApril 09, 2009
#-*- coding:utf-8 -*- 
import threading 
import time 
def fun(name, ls_name, front_thread = None): 
''''' 
线程启动函数 
通过front_thread来使用线程有序的运行 
''' 
time.clock() 
time.sleep(2) 
# 如果front_thread存在,则在front_thread运行完成后,才运行当前线程 
if front_thread != None: 
front_thread.join() 
ls_name.append(name) 
print "thread %s : %s"% (name, time.clock()) if __name__ == '__main__': 
ls_result_name = [] 
ls_thread = [] 
time.clock() 
# 逐一启动1000个线程 
for i in range(0,10): 
if len(ls_thread) == 0: 
t = threading.Thread(target=fun, args=(i,ls_result_name,None)) 
else: 
t = threading.Thread(target=fun, args=(i,ls_result_name,ls_thread[-1])) 
t.start() 
ls_thread.append(t) 
# 等待所有线程结束 
for t in ls_thread: 
t.join() 
print 'ls_result_name:', ls_result_name 
print "main thread:%s" % time.clock()

运行结果为:
thread 0 : 1.99962006344
thread 1 : 2.00000866032
thread 2 : 2.00059113658
thread 3 : 2.00080345407
thread 4 : 2.00100068584
thread 5 : 2.00119456523
thread 6 : 2.00138593033
thread 7 : 2.00166753037
thread 8 : 2.00211758757
thread 9 : 2.0024776892
ls_result_name: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
main thread:2.003211302
线程更明细的使用可参考:
http://docs.python.org/library/threading.html
time.clock模块的更详细介绍可参考:
http://blog.csdn.net/kiki113/archive/2009/03/28/4033017.aspx
Python 相关文章推荐
python base64 decode incorrect padding错误解决方法
Jan 08 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
python+opencv轮廓检测代码解析
Jan 05 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
Python 学习教程之networkx
Apr 15 Python
python变量命名的7条建议
Jul 04 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python实现梯度下降法
Mar 24 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
selenium携带cookies模拟登陆CSDN的实现
Jan 19 Python
python 判断一个进程是否存在
Apr 09 #Python
python ElementTree 基本读操作示例
Apr 09 #Python
python 获取et和excel的版本号
Apr 09 #Python
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 #Python
python 获取文件列表(或是目录例表)
Mar 25 #Python
Python字符串的encode与decode研究心得乱码问题解决方法
Mar 23 #Python
python 判断自定义对象类型
Mar 21 #Python
You might like
php输出xml必须header的解决方法
2014/10/17 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
JavaScript实现随机五位数验证码
2019/09/27 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
python 决策树算法的实现
2020/10/09 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
中专自我鉴定
2014/02/05 职场文书
高中语文课后反思
2014/04/27 职场文书
电教室标语
2014/06/20 职场文书
公积金接收函格式
2015/01/30 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技
MySQL主从切换的超详细步骤
2022/06/28 MySQL
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技