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

标签 python python-3.x multithreading append

我经常使用多线程,同时从不同的线程追加到同一个列表。一切正常。

但是,当线程数达到 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/

相关文章:

python - 基于所有列扩展窗口的Pandas qcut

python - 如何在 Pygame 中创建暂停按钮?

python - 将游戏名称添加到文件中?

java - 原子整数线程安全的条件检查?

c++ - 如何实现线程向我的游戏添加计时器?

python - 关于常微分方程 (ODE) 和优化,在 Python 中

Python 正则表达式组中可选的第二个词

python - 如何使用 python 将列表理解结果传递到 csv

python - 在python中按句子结构对文本进行分类

ruby - 为什么 Ruby 中没有竞争条件