python核心编程-线程threading模块之单线程多线比较
来源:互联网 发布:蜂窝移动网络 4g 编辑:程序博客网 时间:2024/06/05 20:12
myThread.py
python -O -m py_compile myThread.py
#!/usr/bin/env python# -*- coding: UTF-8 -*- ''' function :线程模块threading 仅练习'''from time import sleep, ctimeimport threadingloops = (4, 2)class MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def getResult(self): return self.res def run(self): print 'staring', self.name, 'at:', ctime() self.res = apply(self.func, self.args) print self.name, 'finished at:', ctime()
thread08.py
#!/usr/bin/env python# -*- coding: UTF-8 -*- ''' function :线程模块threading 仅练习'''from myThread import MyThreadfrom time import sleep, ctimedef fib(x): sleep(0.005) if x < 2: return 1 return (fib(x-2) + fib(x-1))def fac(x): sleep(0.1) if x < 2: return 1 return (x * fac(x-1))def sum(x): sleep(0.1) if x < 2: return 1 return (x + sum(x-1))funcs = [fib, fac, sum]n = 12def main(): nfuncs = range(len(funcs)) print '*** SINGLE THREAD' for i in nfuncs: print 'starting', funcs[i].__name__, 'at:', ctime() print funcs[i](n) print funcs[i].__name__, 'finished at:', ctime() print '\n*** MULTIPLE THREADS' threads = [] for i in nfuncs: t = MyThread(funcs[i], (n,), funcs[i].__name__) threads.append(t) for i in nfuncs: threads[i].start() for i in nfuncs: threads[i].join() print threads[i].getResult() print 'all DONE'if __name__=='__main__': main()
输出:
D:\Python27\test>thread08.py
* SINGLE THREAD
starting fib at: Wed Jan 20 22:56:56 2016
233
fib finished at: Wed Jan 20 22:56:59 2016
starting fac at: Wed Jan 20 22:56:59 2016
479001600
fac finished at: Wed Jan 20 22:57:00 2016
starting sum at: Wed Jan 20 22:57:00 2016
78
sum finished at: Wed Jan 20 22:57:01 2016
* MULTIPLE THREADS
staring staringfib staringfacat: sumat:Wed Jan 20 22:57:01 2016 at:
Wed Jan 20 22:57:01 2016
Wed Jan 20 22:57:01 2016
facsum finished at:finished at: Wed Jan 20 22:57:03 2016
Wed Jan 20 22:57:03 2016
fib finished at: Wed Jan 20 22:57:04 2016
233
479001600
78
all DONE
D:\Python27\test>
0 0
- python核心编程-线程threading模块之单线程多线比较
- python核心编程-线程之threading模块
- python核心编程-线程threading模块二
- python核心编程-线程threading模块之三
- python核心编程-线程threading模块之四
- python核心编程-线程threading模块之生产者与消费者
- Python线程之threading.Event
- python中的线程使用--threading模块
- Python 线程的使用(threading模块)
- Python 使用threading 模块创建线程
- 线程与threading模块(python)
- python核心编程-线程
- Python实战之多线程编程threading.Thread
- Python实战之多线程编程threading.Thread
- Python:使用threading模块实现多线程编程二[两种方式起线程]
- Python:使用threading模块实现多线程编程八[使用Event实现线程间通信]
- Python:使用threading模块实现多线程编程二[两种方式起线程]
- Python:使用threading模块实现多线程编程八[使用Event实现线程间通信]
- 装机软件
- SVN 检出过程
- 技术支持联系方式
- Servlet3的上传配置@MultipartConfig
- CentOS 7.0 MySQL 5.6.19安装与卸载脚本小结
- python核心编程-线程threading模块之单线程多线比较
- 使用宏定义让参数含义更清晰
- Cassandra与HBase的大数据对决 谁是胜者?
- commons-loging 、log4j 、slf4j 、LogBack日志相关知识详解
- 1.saltstack使用指南:saltstack的介绍和安装
- 帝吧fb出征是什么原因?帝吧fb出征事情始末 帝吧出征FB打“台独” 台湾网民崩溃:巨人之墙爆了
- 开闭原则
- Mac和 iOS下的对称和非对称加密算法的使用
- C++实现读取文本文件数据到vector中