我经常使用多线程,同时从不同的线程追加到同一个列表。一切正常。
但是,当线程数达到 70 个或更多时,我在追加列表时遇到了问题。在最后一个线程中追加会卡住大约 5 分钟(此时处理器未被占用,可能是 10%。所以,我会说这不是硬件问题)。然后追加成功。
在此link ,它表示列表 append 是线程安全的。
我的问题是:列表追加是否会变得线程不安全?
不要索要密码。我只需要一个简单的是或否来回答我的问题。如果是,请提供解决该问题的建议。
最佳答案
list appending in python is thread safe.
更多详情:what kinds of global value mutation are thread safe
你上一个线程卡住可能是由于其他原因,例如:内存分配..
解决卡住问题的第一步是使用 strace
跟踪系统调用。
您也可以使用gdb
来打印所有线程的调用栈。这是一个维基页面:https://wiki.python.org/moin/DebuggingWithGdb
关于python - list.append(foo) 可以不是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53833613/