gpt4 book ai didi

python - python中信号量的奇怪错误

转载 作者:可可西里 更新时间:2023-11-01 10:39:28 30 4
gpt4 key购买 nike

有人可以向我解释为什么我在以下代码中收到错误吗?

win32event.WaitForSingleObject(self.my_lock, win32event.INFINITE)

win32event.ReleaseSemaphore(self.big_semaphore, 1)
win32event.ReleaseSemaphore(self.small_semaphore, 1)

win32event.ReleaseMutex(self.my_lock)

奇怪的是,如果我像这样评论其中一个信号量:

#win32event.ReleaseSemaphore(self.big_semaphore, 1)
win32event.ReleaseSemaphore(self.small_semaphore, 1)

我的代码运行完美,知道吗?我无法发布错误日志,因为它非常大并且与我的这部分代码无关。

更多上下文:

我有几个进程执行这段代码。我收到的错误是互斥量是 WAIT_ABANDONED,但是当我评论对 ReleaseSemaphore 的调用之一时,代码运行完美。

最佳答案

WAIT_ABANDONED 并不是真正的错误。这意味着另一个线程或进程拥有互斥锁并在未释放互斥锁的情况下终止。操作系统将互斥锁的所有权授予下一个等待线程(从 WaitFromSingleObject() 接收到 WAIT_ABANDONED 结果的线程)。

收到此结果代码时,您可以像收到 WAIT_OBJECT_0 一样继续操作,但要注意受互斥锁保护的资源的状态。

无论如何,您必须调查此返回码并尝试找到放弃互斥锁的人。

(有关 WAIT_ABANDONED 错误的更多解释,请阅读 this MSDN article)

关于python - python中信号量的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226792/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com