日期:2014-05-20  浏览次数:20665 次

求助,这几天在看多线程,关于锁,好晕
线程同步中对象的锁到底是个什么东东,它到底锁住了什么?锁住后有什么效果?

------解决方案--------------------
我们写的程序,其实,可以分成两个部分,一个是你要操作的数据,另一个是用哪些指令来操作。
其实,这里用“指令”不太确切。
如果,楼主是用过C语言,可以理解为:结构体和函数,两个部分。

线程,楼主可以理解成指令的 执行器 ,每个线程,都会相对独立的执行你编写的“指令”。

当多个执行器执行指令来处理同一个数据时,会产生数据不一致的现象。(这里就不详细解释了)

“锁”机制主要是为了解决数据不一致的问题的。
当指令访问同一个数据时,先请求该数据的“锁”,对数据加锁。
其他线程在操纵该数据时,由于请求“锁”时,数据已经加锁,
就要等待锁被释放,才能获得数据加锁的可能,获得加锁后,再进行数据操作,操作完成,释放锁。


------解决方案--------------------
http://hi.baidu.com/%D2%F8%BA%D3%CC%FA%C0%CB/blog/item/7fe7753fb60dfbc47c1e716b.html

这是多年以前我写的一篇文章,请参考下是否对你有所帮助