+ -
当前位置:首页 → 问答吧 → 到底哪个时候该加锁,哪个时候不该加锁?

到底哪个时候该加锁,哪个时候不该加锁?

时间:2010-09-17

来源:互联网

本帖最后由 ecjtubaowp 于 2010-09-17 12:15 编辑

程序中到底什么时候该加锁呢,好像没有统一的标准。read不加锁,write加锁?
对数据库操作的时候情况又是什么呢?
还有一个就是哪些操作是原子操作,哪些不是,对这些都很模糊。

作者: ecjtubaowp   发布时间: 2010-09-17

1. 出现多进程(线程)访问(读/写)同一资源时要加锁。
2. 数据库操作,通常不需要加锁,数据库自己会加锁。偶尔需要加锁(用sql命令),例如,导出一份数据库快照,此时lock table,禁止写操作。
3. 一个cpu指令可以完成的操作都算原子的,i++,当i是内存对齐的,此时操作是原子的。

作者: zzyong08   发布时间: 2010-09-17