让我们说某些时间是5个小时。
调用此函数,长时间在2个不同的线程中可以“中断”吗?
示例:
from threading import Thread
function( ):
do something can take one second to finish.
threadOne( ):
while True:
function( )
threadTwo( ):
while True:
function( )
Thread( target = threadOne ).start( )
Thread( target = threadTwo ).start( )
2个线程永无止境。
答案 0 :(得分:0)
您有无限循环。根据您所拥有的,function()必须抛出一个异常才能执行您想要的操作。我建议不要这样做,并更改您的代码以删除无限循环。也许基于function()的返回条件地循环。
答案 1 :(得分:0)
您的算法不完整,有一点缺乏,您在两个线程中都声明尽管其中一个是正确的,但要执行该功能。
那么,它们如何结束?他们什么时候变成假的?抛出您要执行的操作会导致线程1终止,因为如果线程1没有中断但函数1中断,则它将仅调用函数AGAIN并保持循环,直到中断程序为止。
函数可以自行中断,但是您需要做一些事情以使线程终止。
例如,如果我在线程内部创建了一个for循环,而这是真的,然后将两个函数放入该for循环内,然后使for循环运行直到整数达到9999,则该函数应刚刚结束且该线程应该结束吧?不。
它再次调用for循环,并继续使可怜的计算机计数9999,直到结束为止。
始终创建结束协议。