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 XML RPC服务器端和客户端实例
Nov 22 Python
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
python访问类中docstring注释的实现方法
May 04 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
python实现字符串加密成纯数字
Mar 19 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
Python : turtle色彩控制实例详解
Jan 19 Python
Python Pandas常用函数方法总结
Jun 15 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 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
关于svn冲突的解决方法
2013/06/21 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
prototype 的说明 js类
2006/09/07 Javascript
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
python设置检查点简单实现代码
2014/07/01 Python
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
python、Matlab求定积分的实现
2019/11/20 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
Django-migrate报错问题解决方案
2020/04/21 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
JAVA和C++的区别
2013/10/06 面试题
简述安装Slackware Linux系统的过程
2012/01/12 面试题
天网工程实施方案
2014/03/26 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
物流业务员岗位职责
2015/04/03 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
一行Python命令实现批量加水印
2022/04/07 Python