在线程对象上获取错误不属性exit

时间:2014-06-15 15:26:44

标签: python multithreading python-2.7 python-multithreading

我收到以下错误

Traceback (most recent call last):   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()   File "python/file_download.py", line 30, in run
    self._downloadFile(host[0], host[1])   File "python/file_download.py", line 57, in _downloadFile
    th.exit() AttributeError: 'Thread' object has no attribute 'exit'

来自以下代码:

        th = threading.Thread(
                target=self._fileWriteToDisk,
                args=(saveTo, u, file_name),
                name="fileWrite_Child_of_%s" % self.getName(),
                )
        th.setDaemon(False)
        th.start()
        print "Writing to disk using child: %s " % th.name
        th.exit()

1 个答案:

答案 0 :(得分:0)

没有必要杀死线程,python线程在完成后自杀。

突然杀死一个线程是不好的做法,你可能有没有正确关闭的线程使用的资源。停止标志是结束线程的更好方法,请参阅this以获取示例。

你应该使用以下内容,而不是你拥有的帽子:

th.daemon = False

,因为th.setDaemon(False)已弃用。