【发布时间】:2020-08-28 17:16:16
【问题描述】:
我正在为一个看起来像这样的项目使用线程:
thread1 = Thread(target=function, args=('x','y',1,2))
thread2 = Thread(target=function, args=('a','b',1,2))
thread1.start()
thread2.start()
一切正常,但我想在我的代码中添加一个选项。为了杀死我目前在我的目标函数中使用 While X==True 的线程。所以当我想杀死一个线程时,我必须通过 While==False。 问题是这样做会杀死所有使用此函数的线程。
如果两个线程一起运行并使用相同的目标函数,我怎么能只杀死线程1而不对线程2执行相同的操作?
谢谢!
下面是我实际在做什么的简化示例
def test_thread(freq):
starttime=time.time()
while RUN==True:
try:
if 1==1:
print('1')
sleep(freq - ((time.time() - starttime) % freq))
except Exception as Ex:
print(Ex)
pass
RUN = True
run_test = Thread(target=test_thread, args=(20))
run_test.start()
【问题讨论】:
-
您可以将不同的可变对象作为参数传递给两个线程中的每一个。让线程函数循环,直到给定对象的状态已更改。在主线程中更改一个对象的状态,但不更改另一个对象的状态。
-
您好所罗门感谢您的回答。是的,我可以这样做,但我必须为每个线程创建一个函数,不是吗?使用 While Run_Thread1==True 的第一个函数和使用 While Run_Thread2==True 作为其不是变量的第二个函数?
标签: python-3.x multithreading python-multithreading