python的多线程、多进程代码示例
2016-06-07 20:26
676 查看
原文链接:https://www.geek-share.com/detail/2676302360.html
python多进程和多线程的区别:
python的多线程不是真正意义上的多线程,由于python编译器的问题,导致python的多线程存在一个PIL锁,使得python的多线程的CPU利用率比预期的要低很多
python的多进程(java的应该也是)有内存拷贝的问题,所以建议用java或者c的多线程。
多线程有两种方式:thread和threading
这里应用的场景是map数据分多线程、进度写入codis的示例
这是thread的示例:thread的主进程不会等待线程
import thread,math,threading,multiprocessing,os,time def writeToCodis(prefix,key_list,result_map): # client = BfdCodis("xxx", ) begin = int(time.time()) for key in key_list: print key # client.set(prefix + key, result_map[key]) # client.expire(prefix + key, 1 * 24 * 3600) end = int(time.time()) # 分配key gidToSid={1:2,3:4} total_key = len(gidToSid) gap = int(math.ceil(float(total_key)/process_num)) keys = gidToSid.keys() for i in range(0,process_num): thread.start_new_thread(writeToCodis,(G2S_prefix,keys[i*gap:(i+1)*gap],gidToSid)) # t.start() time.sleep(10)
threading 会等待线程的执行
for i in range(0,process_num): t=threading.Thread(target=writeToCodis,args=(G2S_prefix,keys[i*gap:(i+1)*gap],gidToSid)) t.start()
这是多进程的示例
for i in range(0,process_num): p = multiprocessing.Process(target=writeToCodis,args=(G2S_prefix,keys[i*gap:(i+1)*gap],gidToSid)) p.start()
转载于:https://www.cnblogs.com/qwj-sysu/p/5568232.html
相关文章推荐
- python的多线程、多进程代码示例
- Python之多线程爬虫抓取网页图片的示例代码
- Python2.7实现多进程下开发多线程示例
- python 之 多线程、多进程代码
- Python多线程、异步+多进程爬虫实现代码
- Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)
- Python多线程、异步+多进程爬虫实现代码
- python实现多进程代码示例
- Python多线程、异步+多进程爬虫实现代码
- python下多线程简单代码示例
- 用Python登录好友QQ空间点赞的示例代码
- 常用的Python库和示例代码
- python itchat实现微信自动回复的示例代码
- Python selenium实现微博自动登录的示例代码
- 用ReactJS和Python的Flask框架编写留言板的代码示例
- 【python】多进程多线程
- python音频处理用到的操作的示例代码
- 【代码】廖雪峰Python教程,简单分布式进程
- python实现堆和索引堆的代码示例