一定时间后功能“中断”

时间:2018-10-20 17:53:44

标签: python function infinite-loop

让我们说某些时间是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个线程永无止境。

2 个答案:

答案 0 :(得分:0)

您有无限循环。根据您所拥有的,function()必须抛出一个异常才能执行您想要的操作。我建议不要这样做,并更改您的代码以删除无限循环。也许基于function()的返回条件地循环。

答案 1 :(得分:0)

您的算法不完整,有一点缺乏,您在两个线程中都声明尽管其中一个是正确的,但要执行该功能。

那么,它们如何结束?他们什么时候变成假的?抛出您要执行的操作会导致线程1终止,因为如果线程1没有中断但函数1中断,则它将仅调用函数AGAIN并保持循环,直到中断程序为止。

函数可以自行中断,但是您需要做一些事情以使线程终止。

例如,如果我在线程内部创建了一个for循环,而这是真的,然后将两个函数放入该for循环内,然后使for循环运行直到整数达到9999,则该函数应刚刚结束且该线程应该结束吧?不。

它再次调用for循环,并继续使可怜的计算机计数9999,直到结束为止。

始终创建结束协议。