准确的说semaphore在程序崩溃时不会释放,会导致锁死其他的线程!
除此之外mutex基本上可以视为semaphore的一个特例.
barton兄显然对多线程研究极深,那么应该知道semaphore的这个"副作用".
而ifeng又显然刚学线程,如果不把这些说清楚,恐怕以后程序出错时会想破头.
我个人觉得线程这样复杂的东西不适合在网上这样"快餐"式的学习,现在市面上
有一本《win32 多线程程序设计》,候捷老师译的,ifeng兄可去看看。当然
ifeng如果只是应付工作而已,对偶尔程序中的一些非法操作倒也无所谓,那这
些东东也差不多了。
另外“你看看Delphi的代码,几乎所有涉及线程同步的地方都是使用Semaphore。”
我觉得不切事实,barton兄如果完整地统计Semaphore与mutex出现在delphi源码
中的数量,就会发现两者的使用基本差不太多。[我是用工具搜的,也许也不是很准确]
我只是提个醒而已,完整的代码barton兄应该有,我就不多嘴了。