import os
import time
from multiprocessing import process, joinablequeue
defproducer0
(q):
for i in range(5):
print('%s 生產了 %s' % (os.getpid(), i))
q.put(i)
q.join()
defproducer1
(q):
for i in range(5):
print('%s 生產了 %s' % (os.getpid(), i))
q.put(i)
q.join()
defproducer2
(q):
for i in range(5):
print('%s 生產了 %s' % (os.getpid(), i))
q.put(i)
q.join()
defconsumer
(q):
while
1: res = q.get()
time.sleep(3)
print('%s 消費了 %s' % (os.getpid(), res))
q.task_done()
if __name__ == '__main__':
q = joinablequeue()
p1 = process(target=producer0, args=(q,))
p2 = process(target=producer1, args=(q,))
p3 = process(target=producer2, args=(q,))
p4 = process(target=consumer, args=(q,))
p5 = process(target=consumer, args=(q,))
p_l = [p1, p2, p3, p4, p5]
# p4.daemon = true
# p5.daemon = true
''' 理解下面的迴圈,迴圈開啟列表的子程序,當呼叫p.join()時,
主程式被掛起,迴圈被暫停,等待子程式執行結束後迴圈才能繼
續執行,這個相當於序列'''
for p in p_l:
p.start()
p.join()
# for p in p_l:
# p.join()
# p1.join()
# p2.join()
# p3.join()
print('主程序')
python之多程序
要讓python實現多程序 multiprocessing 我們先來了解作業系統相關知識。unix 和 linux 作業系統提供了乙個 fork 函式系統呼叫,它非常特殊。普通的函式,呼叫一它次,執行一次,但是 fork 函式呼叫一次執行兩次,因為作業系統自動把當前程序 稱為父程序 複製了乙份 稱為...
python 多程序 之 join
今天一大早起床,又學三個臭函式,記錄一下自己渺小微弱的學習之路 有時候join 我們是用來連線字串的,但就在今天我學習程序的時候,看見join 居然不是用來連線字串了,而是用來阻塞程序,興趣大增,便深入了解了一下,join 的作用 在程序中可以阻塞主程序的執行,直到等待子執行緒全部完成之後,才繼續執...
python併發之多程序
一 multiprocessing模組介紹 python中的多執行緒無法利用多核優勢,如果想要充分地使用多核cpu的資源 os.cpu count 檢視 在python中大部分情況需要使用多程序。python提供了multiprocessing。multiprocessing模組用來開啟子程序,並在...