本文共 1178 字,大约阅读时间需要 3 分钟。
public class ThreadSyn { public static void main(String[] args) { new ThreadSyn(); } public ThreadSyn() { Queue queue = new Queue(); Producter p = new Producter(queue); Consumer c = new Consumer(queue); p.start(); c.start(); } // Queue模拟Java线程同步中的生产者消费者仓库、队列。 private class Queue { int value; // 为了使例子简单,value即为假设长度为1的仓库、队列 boolean full = false; public synchronized void put(int i) { if (!full) { value = i; full = true; notify(); } try { wait(); } catch (InterruptedException e) { // e.printStackTrace(); } } public synchronized int get() { if (!full) try { wait(); } catch (InterruptedException e) { // e.printStackTrace(); } full = false; notify(); return value; } } // Java线程同步模型-生产者 private class Producter extends Thread { private Queue q; public Producter(Queue q) { this.q = q; } public void run() { for (int i = 0; i < 20; i++) { System.out.println("生产了:" + i); q.put(i); } } } // Java线程同步模型-消费者 private class Consumer extends Thread { private Queue q; public Consumer(Queue q) { this.q = q; } public void run() { while (true) { System.out.println("消费了:" + q.get()); } } }}
转载地址:http://xsujl.baihongyu.com/