Python多进程
来源:互联网 发布:联合办公 知乎 编辑:程序博客网 时间:2024/05/21 11:08
摘要
尝试使用Python多进程来加快运算
参考资料:http://python.jobbole.com/82045/
TIPS:
(1) CPU 密集运算才用多进程
(2) I/O 密集运算用多线程
斐波那契数列
斐波那契数列的计算属于纯计算型的问题,无IO等额外时间的开销
import multiprocessingimport time# 计算第n个Fibonacci数[O(n)]def fibonacci(num=10): s1=1 s2=1 for _ in range(num-2): temp = s1+s2 s1 = s2 s2 = temp return s2def callback(object): print(object)def mp_fibonacci(): pool = multiprocessing.Pool(processes=3) result1 = pool.apply_async(fibonacci, (33,), callback=callback) result2 = pool.apply_async(fibonacci, (43,), callback=callback) result3 = pool.apply_async(fibonacci, (53,), callback=callback) result4 = pool.apply_async(fibonacci, (63,), callback=callback) result5 = pool.apply_async(fibonacci, (73,), callback=callback) print("Processing Pool Initiated!") pool.close() pool.join() # 调用join之前,先调用close函数,否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束 print("Processing Pool Terminated!")def get_fibonacci(): print(fibonacci(33)) print(fibonacci(43)) print(fibonacci(53)) print(fibonacci(63)) print(fibonacci(73))if __name__ == "__main__": start_t = time.time() mp_fibonacci() print("Finished in",time.time()-start_t) start_t = time.time() get_fibonacci() print("Finished in", time.time() - start_t)
然后我们惊奇地发现,用进程池好像还慢些,gg思密达 )T.T)
看来,除非真的是大规模的运算,进程池调度的花销远比直接单线程高
Processing Pool Initiated!3524578433494437655747031984280651553304939353316291173Processing Pool Terminated!Finished in 0.198444128036499023524578433494437533162911736557470319842806515533049393Finished in 9.393692016601562e-05
阅读全文
0 0
- PYTHON 多进程
- Python多进程
- python多进程编程
- Python 多进程
- python多进程编程
- {python多进程}
- python中的多进程
- Python多进程编程
- Python 多进程交互
- Python 多进程实例
- python 多进程实例
- python fork()多进程
- python多进程处理
- python 多进程
- Python 多进程
- python多进程
- python 多进程
- python 多进程
- 爬楼梯
- Auxre RP学习笔记
- 在ubantu搭建FSL环境并配置HTconcor所遇问题
- 深入浅出 OkHttp 源码
- 自己来做一个简单的web服务器(一)理解基本的http协议
- Python多进程
- final关键字
- 深入剖析 ORA-04031 的前世今生
- 线程创建的两种方式和区别
- 折半查找(二分查找)
- opencv使用vector erase 去除部分边界
- Echarts使用心得(增加全屏按钮,点击一个图另外一个图变化,双环内外环关联,全屏左右切换)
- C++学习5:类的构造函数
- c++ primer(五)