我的python环境 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
安装
pip3 install multiprocess
随便找了个打印测试
from multiprocessing import Process
def fuck(i):
print("fuck zhangenmei",i)
for i in range(10):
p = Process(target=fuck(i))
p.start()
哈?,是我写错了吗,怎么是有序的
我觉得可能是方法执行的东西太少了,所以我加一个循环试试看
def fuck(i):
for j in range(i):
print("fuck zhangenmei",i,'-',j)
# print(threading.current_thread())
def printTest():
for i in range(10):
p = Process(target=fuck,args=(I,))
p.start()
printTest()
仍然是有序的,所以我决定先去百度
from multiprocessing import Process
import threading
import os
def fuck(i):
for j in range(i):
print("进程",i,'-',j,'id',os.getpid())
print(threading.current_thread())
def printTest():
for i in range(10):
p = Process(target=fuck,args=(I,))
# print('进程',i,'process start')
p.start()
printTest()
那么现在文明一点
我本以为进程会同时执行
我现在的疑问是:为什么不是并行?
这里开始就需要进程池了
from multiprocessing import Process
import multiprocessing
import threading
import time
import os
def fuck(i):
for j in range(i):
print('进程', i, 'start')
# time.sleep(3)
print("进程",i,'-',j,'id',os.getpid())
# print(threading.current_thread())
def printTest():
pool = multiprocessing.Pool(processes = 5)
for i in range(5):
p = Process(target=fuck,args=(I,))
print('进程',i,'will start')
pool.apply_async(fuck,(I,))
print('end')
pool.close()
pool.join()
printTest()
告辞!