我真的不知道我是如何偶然发现这个的,我也不知道该怎么想它,但显然这[] = []是 python 中的合法操作,所以是[] = '',但'' = []不允许。虽然似乎没有任何效果,但我想知道:到底是什么?
我有一个从我的多线程 Python 应用程序调用的 C 扩展。我i在 C 函数的某处使用了一个静态变量,i++稍后我有一些语句可以从不同的 Python 线程运行(尽管该变量仅在我的 C 代码中使用,但我不会将其交给 Python)。
出于某种原因,到目前为止我还没有遇到任何比赛条件,但我想知道这是否只是运气......
我没有任何与线程相关的 C 代码(没有 Py_BEGIN_ALLOW_THREADS 或任何东西)。
我知道 GIL 只保证单个字节码指令是原子和线程安全的,因此i+=1Python 中的语句不是线程安全的。
但我不知道i++C 扩展中的指令。有什么帮助吗?