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

多进程:主要运行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多进程" title="python多进程">python多进程使用及线程池的使用方法代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 python多进程使用及线程池的使用方法代码详解 的全部内容, 来源链接: utcz.com/z/350933.html

回到顶部