import datetime,time
def fun1(i):
print(f"开始时间:{datetime.datetime.now()}")
time.sleep(1)
print(f"结束时间:{datetime.datetime.now()}")
return i+1
L1=[1,5,10,20]
from multiprocessing import Pool
p=Pool(5)
result=[]
for i in range(10):
result.append(p.apply_async(fun1,args=(i,)))
p.close()
p.join()
for i in result:
print(i.get())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
返回结果
开始时间:2022-07-08 12:31:44.400372
开始时间:2022-07-08 12:31:44.400524
开始时间:2022-07-08 12:31:44.400646
开始时间:2022-07-08 12:31:44.400768
开始时间:2022-07-08 12:31:44.400868
结束时间:2022-07-08 12:31:45.402358
开始时间:2022-07-08 12:31:45.402544
结束时间:2022-07-08 12:31:45.413063
开始时间:2022-07-08 12:31:45.413180
结束时间:2022-07-08 12:31:45.413200
开始时间:2022-07-08 12:31:45.413298
结束时间:2022-07-08 12:31:45.413317
开始时间:2022-07-08 12:31:45.413411
结束时间:2022-07-08 12:31:45.413430
开始时间:2022-07-08 12:31:45.413513
结束时间:2022-07-08 12:31:46.403838
结束时间:2022-07-08 12:31:46.414218
结束时间:2022-07-08 12:31:46.414293
结束时间:2022-07-08 12:31:46.414346
结束时间:2022-07-08 12:31:46.414394
1
2
3
4
5
6
7
8
9
10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
另外一种方式
import datetime,time
def fun1(i):
print(f"开始时间:{datetime.datetime.now()}")
time.sleep(1)
print(f"结束时间:{datetime.datetime.now()}")
return i+1
from concurrent.futures import ProcessPoolExecutor
result=[]
with ProcessPoolExecutor(max_workers=5) as p:
for i in range(10):
result.append(p.submit(fun1,i))
for i in result:
print(i.result())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
返回结果
import datetime,time
def fun1(i):
print(f"开始时间:{datetime.datetime.now()}")
time.sleep(1)
print(f"结束时间:{datetime.datetime.now()}")
return i+1
from concurrent.futures import ProcessPoolExecutor
result=[]
with ProcessPoolExecutor(max_workers=5) as p:
for i in range(10):
result.append(p.submit(fun1,i))
for i in result:
print(i.result())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
第三种方案
import datetime,time
def fun1(i):
print(f"开始时间:{datetime.datetime.now()}")
time.sleep(i%2)
print(f"结束时间:{datetime.datetime.now()}")
return i+1
from concurrent.futures import ProcessPoolExecutor
with ProcessPoolExecutor(max_workers=5) as p:
result=p.map(fun1,range(10))
for i in result:
print(i)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
运行结果
开始时间:2022-07-08 12:50:56.977642
结束时间:2022-07-08 12:50:56.977713
开始时间:2022-07-08 12:50:56.977810
开始时间:2022-07-08 12:50:56.977913
结束时间:2022-07-08 12:50:56.977960
开始时间:2022-07-08 12:50:56.978048
开始时间:2022-07-08 12:50:56.978150
结束时间:2022-07-08 12:50:56.978204
开始时间:2022-07-08 12:50:56.978313
开始时间:2022-07-08 12:50:56.978876
结束时间:2022-07-08 12:50:56.978930
开始时间:2022-07-08 12:50:56.979019
开始时间:2022-07-08 12:50:56.979099
结束时间:2022-07-08 12:50:56.979144
开始时间:2022-07-08 12:50:56.979244
结束时间:2022-07-08 12:50:57.979318
结束时间:2022-07-08 12:50:57.979482
结束时间:2022-07-08 12:50:57.979560
结束时间:2022-07-08 12:50:57.979626
结束时间:2022-07-08 12:50:57.979694
1
2
3
4
5
6
7
8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28