python多进程使用及线程池的使用方法代码详解

Peren ·
更新时间:2024-09-21
· 500 次阅读

多进程:主要运行multiprocessing模块

import os,time import sys from multiprocessing import Process class MyProcess(Process): """docstring for MyProcess""" def __init__(self, arg, callback): super(MyProcess, self).__init__() self.arg = arg self.callback = callback def run(self): self.callback(self.arg) def test(arg): print("子进程{}开始>>> pid={}".format(arg,os.getpid())) for i in range(1,5): sys.stdout.write("子进程{}运行中{}\r".format(arg,i)) sys.stdout.flush() time.sleep(1) def main(): print("主进程开始>>> pid={}".format(os.getpid())) myp=MyProcess(1,test) myp.start() myp2=MyProcess(2,test) myp2.start() myp.join() myp2.join() print("主进程终止") if __name__ == '__main__': main()

线程池:主要运用了未来模块!下面例子,第一个是正常,第二第线程池,第三个用运行了2个线程池,会排队

from concurrent.futures import ThreadPoolExecutor import time def sayhello(a): print("hello: "+a) time.sleep(2) def main(): seed=["a","b","c"] start1=time.time() for each in seed: sayhello(each) end1=time.time() print("time1: "+str(end1-start1)) start2=time.time() with ThreadPoolExecutor(3) as executor: for each in seed: executor.submit(sayhello,each) end2=time.time() print("time2: "+str(end2-start2)) start3=time.time() with ThreadPoolExecutor(2) as executor1: executor1.map(sayhello,seed) end3=time.time() print("time3: "+str(end3-start3)) if __name__ == '__main__': main()

总结

以上所述是小编给大家介绍的python多进程使用及线程池的使用方法代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!

您可能感兴趣的文章:Python并发:多线程与多进程的详解python进程与线程小结实例分析python爬虫之线程池和进程池功能与用法详解Python实现的多进程和多线程功能示例python实现守护进程、守护线程、守护非守护并行Python实现的自定义多线程多进程类示例python进程和线程用法知识点总结



线程池的使用 进程 方法 程池 线程池 线程 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号