python多线程multiprocessing使用
来源:互联网 发布:数据质量问题 编辑:程序博客网 时间:2024/05/17 10:26
使用python multiprocessing模块多线程创建空文件
#!/usr/bin/env python #-*- coding: UTF-8 -*-import osimport multiprocessingimport sysdef run(srcpath): if os.path.exists(srcpath): for i in xrange(1): #创建100个一级目录 firstPath = srcpath + os.sep + "tfs" + str(i) if not os.path.exists(firstPath): os.mkdir(firstPath) index = 0 for j in xrange(1): #创建200个二级目录 secondPath = firstPath + os.sep + "tfs" + str(j) if not os.path.exists(secondPath): os.mkdir(secondPath) #创建2亿个文件为10000个, 创建1亿个文件为5000个,创建1000万个文件为500,创建100万个文件为50 while index < 1000: fileName = secondPath + os.sep + "tfs_file" + str(index) f = open(fileName, "w") f.write("1") f.close() #建立空文件# os.mknod(fileName) index += 1 index = 0 if __name__ == "__main__": subprocNums = int(sys.argv[1]) srcpath = sys.argv[2] procNum = 0 while procNum < subprocNums: procNum = procNum + 1 subProc = multiprocessing.Process(target=run,args=(srcpath,)) subProc.start() print 'has start subprocess', procNum
2、使用进程池
是的,你没有看错,不是线程池。它可以让你跑满多核CPU,而且使用方法非常简单。
注意要用apply_async,如果落下async,就变成阻塞版本了。
processes=4是最多并发进程数量。
import multiprocessingimport time def func(msg): for i in xrange(3): print msg time.sleep(1) if __name__ == "__main__": pool = multiprocessing.Pool(processes=4) for i in xrange(10): msg = "hello %d" %(i) pool.apply_async(func, (msg, )) pool.close() pool.join() print "Sub-process(es) done."
3、使用Pool,并需要关注结果
更多的时候,我们不仅需要多进程执行,还需要关注每个进程的执行结果,如下:
import multiprocessingimport time def func(msg): for i in xrange(3): print msg time.sleep(1) return "done " + msg if __name__ == "__main__": pool = multiprocessing.Pool(processes=4) result = [] for i in xrange(10): msg = "hello %d" %(i) result.append(pool.apply_async(func, (msg, ))) pool.close() pool.join() for res in result: print res.get() print "Sub-process(es) done."
- python多线程multiprocessing使用
- 【Python】使用 multiprocessing.dummy 执行多线程任务
- python多线程multiprocessing
- python学习之使用multiprocessing.dummy多线程爬虫
- 使用multiprocessing包规避Python GIL多线程串行问题
- python 2.6 multiprocessing 的使用
- python基础:multiprocessing的使用
- python multiprocessing dummy Pool 使用
- Python 多线程 threading和multiprocessing模块
- Python多线程写入文件(multiprocessing template)
- 【转】使用 multiprocessing.dummy 执行多线程任务
- python multiprocessing
- python multiprocessing
- Python--multiprocessing
- python multiprocessing
- Python multiprocessing
- Python multiprocessing
- python-multiprocessing
- 转 html label标签的使用教程
- 9-path工具使用
- SuperMap 应用中心操作(二)——上传和发布插件
- web时代营销战略计划报告
- JS库选择
- python多线程multiprocessing使用
- qunitjs测试框架
- 隐马尔可夫模型--3
- PostgreSQL简介
- 霍布斯:人对人像狼一样
- webservice的开发模式
- Hibernate 级联删除
- find.cpp
- 在android中添加背景图片