首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java Concurrency 之5

2012-09-06 
Java Concurrency 之五保护块(Guarded Blocks)线程间经常要协调并行操作,而最常见的协调方法就是保护块。保

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();    }}


注意Drop类是为了描述保护块而写的。为了避免重复造轮子(re-inventing the wheel),在你写自己的数据共享对象之前尝试一下使用Java Collections Framework中已经定义好的数据结构。欲知详情,请看Quesitons and Exercises 一节。

热点排行