使用同步队列解决任务协作问题
Java API里面提供了许多同步队列,你可以使用它来解决任务协作问题。同步队列在任何时刻都只允许一个任务插入或移除元素。例子如下:
===============基本线程类
public class TestBlockingQueues { static void getKey(){ try { new BufferedReader(new InputStreamReader(System.in)).readLine(); } catch (IOException e) { // TODO Auto-generated catch block throw new RuntimeException(e); } } static void getKey(String message){ System.out.println(""+message); getKey(); } static void test(String msg,BlockingQueue queue) { System.out.println(msg); LiftOffRunner runner=new LiftOffRunner(queue); Thread t=new Thread(runner); t.start(); for(int i=0;i()); test("ArrayBlockingQueue",new ArrayBlockingQueue(3)); test("SynchronousQueue",new SynchronousQueue()); }}===================测试结果如下: