帮助文档:点击打开链接
mutiprocessing.Process=单进程,多进程 mutiprocessing.Lock=进程锁 mutiprocessing.Semaphore=N锁 Pool.apply_async=得到返回结果 Pool.map=批量进程
import multiprocessing
import cv2
def f(x):
return x*2
# img = cv2.imread(x, cv2.IMREAD_COLOR)
# cv2.imshow(x, img)
# cv2.waitKey()
# return img
def f(l, i):
l.acquire()
print('hello world', i)
time.sleep(1)
l.release()
if __name__ ==
'__main__':
# lock = Lock()
# s= time.time()
# p=[]
# for num in range(10):
# ptemp=Process(target=f, args=(lock, num))
# ptemp.start()
# p.append(ptemp)
# for p1 in p:
# p1.join()
# print(time.time()-s)
# cores = multiprocessing.cpu_count()
# print(cores)
# pool = multiprocessing.Pool(processes=4)
xs =
range(
10)
#
#
# # method 1: map
# # print(pool.map(f, xs)) # prints [0, 1, 4, 9, 16]
# # for y in pool.imap(f, xs):
# # print (y ) # 0, 1, 4, 9, 16, respectively
# # method 3: imap_unordered
# for y in pool.imap_unordered(f, xs):
# print(y) # may be in any order
# pool.close()
# pool.join()
p1 = multiprocessing.Process(
target=f,
args=(
1,)) p2 = multiprocessing.Process(
target=f,
args=(
2,)) p1.start() p2.start()
for p
in multiprocessing.active_children():
print(p.name,p.pid,p) p1.join() p2.join()