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



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