Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是python';s";在;为列表构造线程安全的语言?_Python_List_Thread Safety_In Operator - Fatal编程技术网

是python';s";在;为列表构造线程安全的语言?

是python';s";在;为列表构造线程安全的语言?,python,list,thread-safety,in-operator,Python,List,Thread Safety,In Operator,列表中的obj是否线程安全,而列表中的obj是否可以在其他线程中修改 但是,我在语言结构中找不到任何关于的参考 在python实现方面,我使用CPython,但是其他实现也会对社区有所帮助。我假设您在这里使用的是CPython 如果没有自定义的\uuuuuuuuuuuuuuuuuuuuuuuu包含\uuuuuuuuuu或\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu iter>钩子返回到Python中,或者列表中包含的测试值使用自定义的\uuu

列表中的obj是否线程安全,而
列表中的obj是否可以在其他线程中修改

但是,我在
语言结构中找不到任何关于
的参考


在python实现方面,我使用CPython,但是其他实现也会对社区有所帮助。

我假设您在这里使用的是CPython

如果没有自定义的
\uuuuuuuuuuuuuuuuuuuuuuuu包含
\uuuuuuuuuu或
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu iter>钩子返回到Python中,或者列表中包含的测试值使用自定义的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

这使得操作完全线程安全;Python线程只在操作码之间切换;GIL(全局解释器锁)通常仅在操作码之间解锁

也就是说,如果在测试安全壳时在自定义C类型上使用
中的
,该自定义C类型将解锁GIL,那么它将不会是线程安全的

换句话说:
字节码测试中的
被锁定,但如果操作员需要调用Python代码(通过
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,当没有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,那么该操作就不是线程安全的


对于其他Python实现,线程的处理方式可能有很大的不同。当然,Jython和IronPython没有GIL,您应该假设该操作不是线程安全的。

请注意,任何关于线程安全的声明都是特定于实现的(也可能是特定于版本的)。假设除了获取和释放锁之外,没有任何东西是线程安全的,这可能更容易。