我经常使用多线程,在不同的线程中向同一个列表追加数据,一切都很正常。
然而,当线程数量达到70个或更多时,我遇到了一个列表追加问题。在最后一个线程中追加数据会卡住大约5分钟(此时处理器使用率可能只有10%左右,因此我认为这不是硬件问题)。然后追加操作成功完成。
在链接上,它说列表追加是线程安全的。
我的问题是:列表追加是否可能不是线程安全的?
不要要求代码之类的东西。我只需要一个简单的是或否回答我的问题。如果是,麻烦提供修复建议。
我经常使用多线程,在不同的线程中向同一个列表追加数据,一切都很正常。
然而,当线程数量达到70个或更多时,我遇到了一个列表追加问题。在最后一个线程中追加数据会卡住大约5分钟(此时处理器使用率可能只有10%左右,因此我认为这不是硬件问题)。然后追加操作成功完成。
在链接上,它说列表追加是线程安全的。
我的问题是:列表追加是否可能不是线程安全的?
不要要求代码之类的东西。我只需要一个简单的是或否回答我的问题。如果是,麻烦提供修复建议。
Python中的列表追加是线程安全的。
更多详情请参考:哪些全局值的变化是线程安全的
你的最后一个线程可能由于其他原因而被卡住,例如:内存分配。
我解决卡住的第一步是使用strace
跟踪系统调用。
你也可以使用gdb
打印所有线程的调用堆栈。这里有一个维基页面:https://wiki.python.org/moin/DebuggingWithGdb