这是我在书中看到的代码,代码中有把实例化静态内部类。静态类怎么可以实例化?为什么要这么做?import java.util.concurrent.*;import java.util.concurrent.locks.*;public class Consumerproducer { private static Buffer buffer = new Buffer(); public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(2); executor.execute(new Producertask()); executor.execute(new ConsumerTask()); } static class Producertask implements Runnable { public void run() { int i = 10; try { while (true) { System.out.println("Producer writes " + i); buffer.write(i++); Thread.sleep((int) (Math.random() * 10000)); } } catch (InterruptedException ex) { ex.printStackTrace(); } } } static class ConsumerTask implements Runnable { public void run() { try { while (true) { System.out.println("\t\tConsumer reads " + buffer.read()); Thread.sleep((int) (Math.random() * 10000)); } } catch (InterruptedException ex) { ex.printStackTrace(); } } } private static class Buffer { private static final int CAPACITY = 1; private java.util.LinkedList<Integer> queue = new java.util.LinkedList<>(); private static Lock lock = new ReentrantLock(); private static Condition notEmpty = lock.newCondition(); private static Condition notFull = lock.newCondition(); public void write(int value) { lock.lock(); try { while (queue.size() == CAPACITY) { System.out.println("Wait for notFull condition"); notFull.await(); }
添加回答
举报
0/150
提交
取消