python中的list是否线程安全

几个相关的概念说明:

GIL: Global Interpreter Lock,全局解释器锁。为了解决多线程之间数据完整性和状态同步的问题,设计为在任意时刻只有一个线程在解释器中运行。

线程:程序执行的最小单位。

进程:系统资源分配的最小单位。

线程安全:多线程环境中,共享数据同一时间只能有一个线程来操作。

原子操作:原子操作就是不会因为进程并发或者线程并发而导致被中断的操作。

重要结论:当对全局资源存在写操作时,如果不能保证写入过程的原子性,会出现脏读脏写的情况,即线程不安全。Python的GIL只能保证原子操作的线程安全,因此在多线程编程时我们需要通过加锁来保证线程安全。

最简单的锁是互斥锁(同步锁)

关于python中内建数据类型的示例

http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容