Python中的自适应互斥

2024-09-30 20:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道如何用python编写混合互斥体吗?在

我所说的混合互斥体是指一个兼有这两种功能的互斥体:它会旋转一段时间以等待快速锁定,但如果时间过长,最终会阻塞线程,从而放弃CPU。在

我知道人们在C语言中尝试过,但正在寻找一种Python式的方法。 例如:https://hackernoon.com/building-a-c-hybrid-spin-mutex-f98de535b4ac


Tags: 方法https功能com时间cpu线程mutex
1条回答
网友
1楼 · 发布于 2024-09-30 20:31:42
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()

相关问题 更多 >