你不要把这些东西混在一起,他们差别很大。你要具体情况具体说,你不要把不同语言或者不同操作系统的东西混在一起。比如信号量这个东西在linux c programming中我们通常指的是System V Semaphores,一个特别古老玩意儿,今天已经没人用了,你在java当中也找不到。
如果你换在windows上看,windows c programming里面的临界区、mutex、读写锁是三个不同的概念,你没办法把它们映射到java或者Linux c programming的概念中。顺便说一句,windows上的读写锁不是pthread里面的读写锁。Windows的读写锁就是作为mutex的替代而设计的。
你要搞清楚这些概念,就一个个的单独学。比如Windows你可以看Windows Via C/C++这本书。Java你就看doug lea的著作。在一个学懂之前不要看下一个。
【 在 PlutoKey 的大作中提到: 】
: synchornised 是用互斥量和条件变量实现的,
: 信号量 也是用互斥量和条件变量实现的
: 两者有什么区别?
: ...................
--
FROM 107.139.34.*