线程安全的理解和如何保证线程安全

线程安全的理解和如何保证线程安全

http://www.cnblogs.com/mindsbook/archive/2009/10/15/thread-safety-and-GIL.html

线程是在多线程环境下,线程安全能够保证多个线程同时执行程序时依旧运行正确,而且要保证对于共享数据,可以由多个线程存取,但是同一时刻只能有一个线程进行存取。一般通过加锁的方式来实现。

加锁也分2种不同粒度的锁:

1. 细粒度锁(fine-grained),需要程序员自行地加锁、解锁来保证线程安全(java和Jpython)

2. 粗粒度锁(coarse-grained),语言层面本省维护者一个全局的锁机制,用来保证线程安全(python)

Python中采用的是全局锁机制(GIL:Global Interpreter Lock),即每一个interpreter进程只能同时仅有一个线程来执行,获得相关的锁以及存取相关资源。特点就是:a. 简单,无需人为地加锁解锁 b. 安全,不会因为多线程中某个线程的崩溃造成整个线程的崩溃。这也是浏览器为什么开始使用多进程的一个原因(google的chrome又开始使用独立的进程为每个tab服务了)

Python自身的哲学就是简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值