python回调函数中使用多线程
python回调函数demo
下面的demo是根据需求写的简单测试脚本
1 | #!/usr/bin/env python |
demo的output:
1 | Boom:git_response pirogue$ python test.py |
python的多线程
下面的代码是从主程序中,摘取出来的代码片段
1 | from multiprocessing.dummy import Pool as ThreadPool |
上面的多线程代码片段是一个回调函数,没有完全根据demo进行改装,有了demo根据需求改起来也不难,多调试就可以了。
python多线程接收多个参数
1 | from multiprocessing.dummy import Pool as ThreadPool |
pool_git是你需要多线程调用的功能函数,list_git是pool_git函数需要接收的参数,默认情况下pool_git是一个接收一个参数的函数。
但是我们的功能常常设计的逻辑比较复杂,需要在pool_git中传入多个参数,这时list_git就应该给一个多个元组组成的列表。
stackoverflow上老外给的代码示例:
1 | def multi_run_wrapper(args): |
output
1 | [3, 5, 7] |
Stack Overflow上更多的答疑方便你更好的理解:
https://stackoverflow.com/questions/5442910/python-multiprocessing-pool-map-for-multiple-arguments
相信聪明的你一定能看得懂~
多线程与多进程
1 | from multiprocessing.dummy import Pool as ThreadPool |
多线程进程池,绑定一个CPU核心
1 | from multiprocessing import Pool |
多进程,运行于多个cpu核心
如果你搞不懂是CPU密集型的任务,还是IO密集型的任务,那就用这个库两条import都写上,然后分别实例化跑一下就知道耗时长短,用法上只是在创建对象上改几个字母就行Pool和ThreadPool的互换。
老外实例妙趣横生的讲解:《一行代码搞并行》
http://chriskiehl.com/article/parallelism-in-one-line/
学习记录贴,fighting~
原文作者: pirogue
原文链接: http://pirogue.org/2017/12/23/call_back_func/
版权声明: 转载请注明出处(必须保留作者署名及链接)