list.append(foo)可以不是线程安全的吗?

时间:2018-12-18 13:01:26

标签: python python-3.x multithreading append

我经常使用多线程,同时将不同线程附加到同一列表。一切正常。

但是,当线程数超过70个或更多时,列表附加问题出现了。在最后一个线程中添加的内容大约停留5分钟(此时处理器未被占用,可能占10%。所以,这不是硬件问题)。然后追加成功完成。

在此link,它表示列表追加是线程安全的。

我的问题是:列表添加是否会变得不安全?

不要要求输入密码。对于我的问题,我只需要简单的是或否。如果是的话,请提供解决问题的建议。

1 个答案:

答案 0 :(得分:1)

  

在python中添加列表是线程安全的。

您的最后一个线程可能由于其他原因而卡住,例如:内存分配。

解决卡住问题的第一步是使用strace跟踪系统调用。

您也可以使用gdb打印所有线程的调用堆栈。这是一个Wiki页面:https://wiki.python.org/moin/DebuggingWithGdb