python核心编程-线程
2016-01-19 21:36
821 查看
多线程一般试用的场景:
它们本质上就是异步的,需要有多个并发事务,各个事务的运行顺序可以是不确定的,随机的,不可预测的。这样的编程任务可以被分成多个执行流,每个流都有一个要完成的目标。根据应用的不同,这些子任务可能都要
计算出一个中间结果,用于合并得到最后的结果。
非线程程序thread01.py:
线程程序thread02.py:
输出:
D:\Python27\test>thread01.py
starting at: Tue Jan 19 21:29:44 2016
start loop 0 at: Tue Jan 19 21:29:44 2016
loop 0 done at: Tue Jan 19 21:29:48 2016
start loop 1 at: Tue Jan 19 21:29:48 2016
loop 1 done at: Tue Jan 19 21:29:50 2016
all DONE at: Tue Jan 19 21:29:50 2016
D:\Python27\test>thread02.py
starting at: Tue Jan 19 21:29:52 2016
start loop 0 at:start loop 1 at: Tue Jan 19 21:29:52 2016Tue Jan 19 21:29:52 2016
loop 1 done at: Tue Jan 19 21:29:54 2016
loop 0 done at: Tue Jan 19 21:29:56 2016
all DONE at: Tue Jan 19 21:29:58 2016
D:\Python27\test>
它们本质上就是异步的,需要有多个并发事务,各个事务的运行顺序可以是不确定的,随机的,不可预测的。这样的编程任务可以被分成多个执行流,每个流都有一个要完成的目标。根据应用的不同,这些子任务可能都要
计算出一个中间结果,用于合并得到最后的结果。
非线程程序thread01.py:
#!/usr/bin/env python # -*- coding: UTF-8 -*- from time import sleep, ctime def loop0(): print 'start loop 0 at:', ctime() sleep(4) print 'loop 0 done at:', ctime() def loop1(): print 'start loop 1 at:', ctime() sleep(2) print 'loop 1 done at:', ctime() def main(): print 'starting at:', ctime() loop0() loop1() print 'all DONE at:', ctime() if __name__=='__main__': main()
线程程序thread02.py:
#!/usr/bin/env python # -*- coding: UTF-8 -*- ''' function :线程模块thread 仅练习''' from time import sleep, ctime import thread def loop0(): print 'start loop 0 at:', ctime() sleep(4) print 'loop 0 done at:', ctime() def loop1(): print 'start loop 1 at:', ctime() sleep(2) print 'loop 1 done at:', ctime() def main(): print 'starting at:', ctime() thread.start_new_thread(loop0,()) thread.start_new_thread(loop1,()) sleep(6) print 'all DONE at:', ctime() if __name__=='__main__': main()
输出:
D:\Python27\test>thread01.py
starting at: Tue Jan 19 21:29:44 2016
start loop 0 at: Tue Jan 19 21:29:44 2016
loop 0 done at: Tue Jan 19 21:29:48 2016
start loop 1 at: Tue Jan 19 21:29:48 2016
loop 1 done at: Tue Jan 19 21:29:50 2016
all DONE at: Tue Jan 19 21:29:50 2016
D:\Python27\test>thread02.py
starting at: Tue Jan 19 21:29:52 2016
start loop 0 at:start loop 1 at: Tue Jan 19 21:29:52 2016Tue Jan 19 21:29:52 2016
loop 1 done at: Tue Jan 19 21:29:54 2016
loop 0 done at: Tue Jan 19 21:29:56 2016
all DONE at: Tue Jan 19 21:29:58 2016
D:\Python27\test>
相关文章推荐
- Python 生成的页面中文乱码问题
- python基础之字典
- python更改或者查看当前工作目录
- 使用PYTHON解析Wireshark的PCAP文件
- 八大排序算法的Python实现
- 八大排序算法的Python实现
- CAS单点登录python客户端分析
- 使用PYTHONPATH来使用其他版本的Django来启动
- Python3.4 IP查询(api)
- python 中 五种字典(dict)的遍历方法,实验法比较性能。
- python random.shuffle(随机打乱列表等) 和 random.random
- python实现一个朴素贝叶斯分类器
- 初学python--参数传递方式
- ubuntu14.04LTS下编译安装Open Babel和python语言绑定
- Python【基础第一篇】
- 【python】获取三维图形的某个截面
- webvtt字幕转srt字幕的python程序(附改名程序)
- Python-map()函数格式化不规则输入
- python 实现布尔莎转换模型
- Python-用filter()删除1~100的素数和一些思考