摘要: 信号量、互斥量和临界区都是用来支持线程同步的工具,它们的作用大体上类似,这里简要描述一下它们在访问范围上的差别。 信号量在整个系统中可以被任意进程的任意线程获取并释放。也就是说,它是可以被跨进程访问的,而且被线程A获取的信号量可以由线程B来释放。也就是说任何进程的线程都可以强行获取一个信号量(获取之前先释放)。 互斥量也是可以在整个系统中被任意进程的任意线程访问到,但它严格限定只有获取了互斥量的线程才能释放该互斥量。也就是使用互斥量可以避免互斥状态被其他线程破坏。但它也存在一个问题,即任何进程的线程一旦获取到互斥量,就有权力一直不去释放它,导致其他进程的线程无法获取到互斥量。 临界区是比... 阅读全文
posted @ 2012-04-23 22:01 carter2000 阅读(774) 评论(0) 推荐(0) 编辑