假设我每10秒播放一次声音。
我还有一个settings
文件,其中包含一定数量的线程设置(id,播放声音)。我的主脚本取消了每个线程设置,然后用自己的设置启动尽可能多的线程。
我的问题是,如何杀死其中一个线程,只有一个?不是第一个或最后一个,我希望能够选择哪一个。它甚至可能吗?
我考虑给每个线程一个引用,但是因为我从settings
文件中获取它们,所以我不知道有多少线程需要启动。
发声线程
class MyThread(Thread):
def __init__(self, sound):
Thread.__init__(self)
self.sound = sound
self.stopped = False
def run(self):
while not self.stopped:
#Totally made up function, as an example
playsound(self.sound)
time.sleep(10)
def stop(self):
self.stopped = True
主要文字:
threads = []
with open('settings', 'rb') as f:
while True:
try:
threads.append(pickle.load(f))
continue
except EOFError:
break
for i in range(threads)
#Model of threads: [id, sound], [id, sound], [id, sound]...
MyThread(i[1]).start()