多线程中不用sleep(),行吗?

我刚学JAVA 不久,看BRUCE ECKEL的书,其中的例子不用sleep() ,CPU使用飙升,我都怀疑是不是JAVA 多线程有问题.我曾用MFC编过一个工作线程,要不断地监听串口来的数据,程序工作的挺好,CPU 5%左右,也没用sleep() ,因为那样会丢信号的.
若用JAVA 编,肯定要丢信号的,若要考虑效率的话.

建议使用sleep

我看过原来的MFC 程序,其中用了WAITFORSINGLEOBJECT().和WAIT()差不多.我现在感觉不出多线程的本质.困惑?

不建议使用sleep,能用signal解决最好。

可不可以这样做:用一个缓冲池保存接收的信号,而信号的消费程序在池为空的情况下wait(),开一个扫描线程对缓冲池定时的扫描,当信号来了的时候notify()消费程序,这样既不会丢信号,cpu的使用也会小一些了。