我有以下问题,我有2个发送者,彼此发送一个,并且只有在其中2个发送了消息后,我希望接收者开始接收然后等待接下来的两个发送,例如 S1 S2 录音 S1 S2 Rec ...
semOne = threading.Semaphore(value = 1)
semTwo = threading.Semaphore(value = 0)
semRecNotify = threading.Semaphore(value = 0)
def senderOne():
while True:
semOne.acquire()
print("Sender One")
semTwo.release()
def senderTwo():
while True:
semTwo.acquire()
print("Sender Two")
semOne.release()
semRecNotify.release()
def receiver():
while True:
semRecNotify.acquire()
print("Receiver")
使用semOne
和semTwo
,我设法同步2个发件人并使用semRecNotify
我尝试过(失败)确保我们只在连续2次发送后才进入接收器。我无法获得想要的功能。
请注意,这不是语言特定的问题,我只是想了解自己如何正确使用信号量进行同步。 是否有更一般/数学方法来解决这个问题?