Python -- 多進程實現


Python中使用GIL(解釋器全局鎖),使得對於任何Python程序,不管有多少的處理器,任何時候都總是隻有一個線程在執行。因而,在python中使用多線程很難提升效率。

所以,使用多進程!!

直接上代碼:

import multiprocessing

def f(i, q):
	q.put(i, block=False)

def p(q):
	processes = []
	p1 = multiprocessing.Process(target = f, args = (1,q,))
	p2 = multiprocessing.Process(target = f, args = (2,q,))
	processes.append(p1)
	processes.append(p2)

	for p in processes:
		p.daemon = True
		p.start()
	p.join()

	while not q.empty():
		ss = q.get()
		print ss

if __name__ == '__main__':
	q = multiprocessing.Queue()	#使用隊列傳遞數據
	p(q)

以上代碼的執行結果:
1
2



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章