建议你先看一些进程同步的文档吧。在多CPU/多线程的环境下尽量用信号量机制。
while循环不是一种好的解决方案,尽管它“可能”可以运行。但是也可能出现这样的情况(和进程调度有关),while循环永远不能退出。
while循环是一种查询的方式,比较耗CPU资源。

解决方案 »

  1.   

    进程在等待信号量的时候其实在SLEEP
    while循环其实在WORK
      

  2.   

    大家都知道的部分:线程挂起,操作系统发现条件满足(包括出现某种错误)时,重新唤醒进程。
    大家都不知道的部分:去问actpvc,看它告不告诉你。
      

  3.   

    自己做个测试吧,while必定造成CPU 100%,而守侯内核事件是把CPU的控制权交出去,进行
    其他进程或者线程的操作。这个是基本概念。