声明:
1、本文全文为半香仙笛(Woody.c)原创
2、如果需要转载本文,请注明出处: http://blog.youkuaiyun.com/mcg890414/archive/2010/08/16/5815322.aspx
3、如果需要和笔者交流,请邮件至mcg890414@163.com
近日看Sreekrishnan的书,发现无论对于等待队列,工作队列,还是文件,等等,只要是需要进行操作的单元,在内核编程中,普遍运用了锁机制。
一开始我一直没有特别清楚锁机制的用途和含义,也没有正面应用过锁机制,但是最近看的多了,也渐渐有了认识,比如:
这几句,虽然我个人对原书内容进行了改动,不过没关系,这里分析问题就好了。我想说,锁机制并不是说“锁”住了整个结构对象,或者说简单点,锁机制,只是“锁”了“锁”而已,当然这是我的理解,并不是说我就是对的(如果我理解错了,请不吝指正)。
我认为,锁机制其实是程序员对一段程序和其他进程之间,进行“类似通信”的约束关系,其实只是锁与锁之间的关系,与被“锁”的对象没有任何关系,如果你不加锁直接访问一个已加锁的对象,其实还是可以访问的,不过,这些线程同时运行,可能相安无事,也可能造成不可预计的麻烦,所以,加锁在这种为了防止意外的情况下,还是相当必要的。