线程目标函数的返回不会导致线程退出

时间:2018-03-09 12:06:17

标签: python multithreading

我有一个简单的线程,看起来像这样(简化):

import threading
import time

def print_coordinates():
    return

listener = threading.Thread(name = "listener", target = print_coordinates)

while(1):
    listener.start()
    time.sleep(1)
    listener.start()
    time.sleep(1)

现在,我收到错误RuntimeError: threads can only be started once。据我所知,return应该使线程“默默地退出”,如上所述here。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为你不能多次拨打MAX({0,0,3,0,0,..})

见这里: http://docs.python.org/2/library/threading.html#threading.Thread.start

  

每个线程对象最多只能调用一次。它安排了   object的run()方法在一个单独的控制线程中调用。

     

如果在on上多次调用此方法将引发RuntimeError   相同的线程对象。

要再次调用它,您必须创建该线程的另一个实例。