【发布时间】:2021-07-06 13:07:19
【问题描述】:
在我的程序中,有一个部分我利用多个线程来模拟分布式环境。所有线程都在尝试破解密码。如您所见,所有线程都使用不同的参数调用相同的目标函数func。每当找到破解密码的trial 时,此函数都会返回一个结果。
def func(self, inp):
trial = 0
while (crackPwd(inp, trial) != True):
trial += 1
return inp
threads = []
for inp in range(inpAmount):
thr = threading.Thread(target=func, args=(inp))
threads.append(thr)
thr.start()
for thr in threads:
thr.join()
但是我想做的是在其中一个线程破解密码后停止其他线程。我的意思是,我想在线程从func() 返回结果后继续执行程序流程。我试图找到一个解决方案,但它们似乎都不符合我的问题。现在,我得到了所有线程的结果,并且浪费了很多时间等待所有线程完成。感谢您的帮助。
【问题讨论】:
标签: python python-3.x multithreading operating-system python-multithreading