Java Concurrency 之五
保护块(Guarded Blocks)
线程间经常要协调并行操作,而最常见的协调方法就是保护块。保护块即:一块在执行前必须检查是否满足某一条件的代码。要做到这一点,要走这几步。
举个例子guardedJoy 是一个共享变量joy被置为true时才能执行的方法。理论上讲,guardedJoy可以写成一直循环判断joy知道joy为true。但循环很浪费资源,因为在等待执行期间它一直占用着CPU时间。
public class ProducerConsumerExample { public static void main(String[] args) { Drop drop = new Drop(); (new Thread(new Producer(drop))).start(); (new Thread(new Consumer(drop))).start(); }}