2024-09-30 20:31:42 发布
网友
有人知道如何用python编写混合互斥体吗?在
我所说的混合互斥体是指一个兼有这两种功能的互斥体:它会旋转一段时间以等待快速锁定,但如果时间过长,最终会阻塞线程,从而放弃CPU。在
我知道人们在C语言中尝试过,但正在寻找一种Python式的方法。 例如:https://hackernoon.com/building-a-c-hybrid-spin-mutex-f98de535b4ac
class hybridSpinLock: def __init__(self): self.lock_var = threading.Lock() self.threshold = 1 def lock(self): #stalling start = time.time() elapsed = 0 while (self.lock_var.acquire(False)==False): elapsed = time.time() - start if elapsed >= 2*self.threshold: self.lock_var.acquire() # blocking lock break #update the threshold value self.threshold += (elapsed - self.threshold)/8 def release(self): self.threshold=1 self.lock_var.release()
相关问题 更多 >
编程相关推荐