3
所以我有生產者和消費者的代碼;生產者和消費者 - Python中的多個線程
import threading
import time
import random
N = 8
buffer = N * [None]
free = threading.Semaphore(N)
items = threading.Semaphore(0)
def prod():
n = 0
i = 0
while True:
time.sleep(random.random())
free.acquire()
buffer[i] = n
i = (i + 1) % N
n += 1
items.release()
def cons():
i = 0
while True:
time.sleep(random.random())
items.acquire()
print(buffer[i])
i = (i + 1) % N
free.release()
def main():
p = threading.Thread(target=prod, args=[])
c = threading.Thread(target=cons, args=[])
p.start()
c.start()
p.join()
c.join()
main()
但我希望能夠有三個線程爲生產者和消費者。有人可以提出一種方法,我可以使用第三個信號量做到這一點嗎?謝謝。
感謝您的幫助,但它是一個任務,我必須寫它與第三互斥信號量。你能告訴我這樣寫嗎? – JoC5