我也是刚刚才学习的,不是很懂,网上看了看例子,都不懂,JDK自带了一个例子。
class Producer implements Runnable {
private final BlockingQueue queue;
Producer(BlockingQueue q) { queue = q; }
public void run() {
try {
while(true) { queue.put(produce()); }
} catch (InterruptedException ex) { handle }
}
Object produce() { }
}
class Consumer implements Runnable {
private final BlockingQueue queue;
Consumer(BlockingQueue q) { queue = q; }
public void run() {
try {
while(true) { consume(queue.take()); }
} catch (InterruptedException ex) { handle }
}
void consume(Object x) { }
}
class Setup {
void main() {
BlockingQueue q = new SomeQueueImplementation();
Producer p = new Producer(q);
Consumer c1 = new Consumer(q);
Consumer c2 = new Consumer(q);
new Thread(p).start();
new Thread(c1).start();
new Thread(c2).start();
}
}
上面的代码我也看了一整才看懂的。java的并发实际上就是利用队列进行操作,如果对队列和线程熟悉的话,那么这个也是比较简单的,java并发是生产者和消费者得具体应用,第一个类负责生产东西放入到队列中,第二个类用于从队列中拿出东西进行操作。最后一个是用于测试的,启动了一个生产的线程,两个消费的线程。
这个还可以和线程池进行结合现在我还不是很会,等会了再贴上代码