#coding=utf-8
import multiprocessing
def worker(n):
"""worker function"""
#获取当前线程的名字
name = multiprocessing.current_process().name
print (name,'starting')
print ('Worker',n)
print ("number of CPU :",multiprocessing.cpu_count())
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker,args=(i,))
jobs.append(p)
p.start()
p.join()
print ("Process end.")
print ("-------------")
注意,如果你用的是windows系统,需要要把.py 拉到CMD里面执行才行。
Process-1 starting
Worker 0
number of CPU : 4
Process end.
-------------
Process-2 starting
Worker 1
number of CPU : 4
Process end.
-------------
Process-3 starting
Worker 2
number of CPU : 4
Process end.
-------------
Process-4 starting
Worker 3
number of CPU : 4
Process end.
-------------
Process-5 starting
Worker 4
number of CPU : 4
Process end.
-------------
不用多进程:
import time
import os
def long_time_task():
print('当前进程: {}'.format(os.getpid()))
time.sleep(2)#sleep 2秒,让它更耗时
print("结果: {}".format(8 ** 20))
if __name__ == "__main__":
print('当前母进程: {}'.format(os.getpid()))
start = time.time()
for i in range(2):
long_time_task()
end = time.time()
print("用时{}秒".format((end-start)))
当前母进程: 8772
当前进程: 8772
结果: 1152921504606846976
当前进程: 8772
结果: 1152921504606846976
用时4.069143772125244秒
一共4s
用多进程实现:
#coding=utf-8
from multiprocessing import Process
import os
import time
def long_time_task(i):
print("sub process: {} - task{}"
.format(os.getpid(), i))
time.sleep(