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