Python线程。线程()返回NoneType?

2024-09-30 01:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个小应用程序,我知道它将有3个独立于主线程的线程,在某个时刻,我需要从另一个线程中识别一个线程。假设线程是ABCA将需要与C连接。我正在尝试在启动线程之前将其添加到字典中,以便稍后识别线程C

currentThreads['A'] = threading.Thread(target=func, args=[]]).
currentThreads['A'].start()
currentThreads['B'] = threading.Thread(target=func, args=[]).start()
currentThreads['B'].start()

这种行为很奇怪:有时两个currentThreads[key].start()都能AttributeError: 'NoneType' object has no attribute 'start',有时只有{}都能。在

有什么线索吗?在


Tags: key应用程序target字典args线程thread主线
2条回答

这是因为^{}返回None所以在:

currentThreads['B'] = threading.Thread(target=func, args=[]).start()

currentThreads['B']None,因此调用currentThreads['B'].start()将引发{}

我建议您,为了保持线程的引用名称,请实际为它们命名,如下所示:

t = threading.Thread(name='my_service', target=func)

然后,当您需要检查线程的名称时,只需使用getName()获取它的名称:

^{pr2}$

相关问题 更多 >

    热门问题