gpt4 book ai didi

python - 这段 Python 代码线程安全吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:21 28 4
gpt4 key购买 nike

import time
import threading

class test(threading.Thread):
def __init__ (self):
threading.Thread.__init__(self)
self.doSkip = False
self.count = 0

def run(self):
while self.count<9:
self.work()

def skip(self):
self.doSkip = True

def work(self):
self.count+=1
time.sleep(1)
if(self.doSkip):
print "skipped"
self.doSkip = False
return
print self.count

t = test()
t.start()
while t.count<9:
time.sleep(2)
t.skip()

最佳答案

线程安全的方式有哪些?我在这里没有看到您可能想要保护的任何部分。

skip 可能随时重置 doSkip,因此锁定它没有多大意义。您没有同时访问的任何资源 - 因此恕我直言,此代码中没有任何内容会损坏/不安全。

根据锁定/计数的不同,唯一可能运行不同的部分是每次调用 .skip() 时您期望有多少“跳过”。如果你想确保每次跳过都会导致跳过对 .work() 的调用,你应该将 doSkip 更改为一个计数器,该计数器受增量和锁的保护比较/递减。当前,一个线程可能会在检查之后但在 doSkip 重置之前打开 doSkip。在此示例中无关紧要,但在某些实际情况下(使用更多代码)可能会有所不同。

关于python - 这段 Python 代码线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/762448/

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