我也是剛剛才學習的,不是很懂,網上看了看例子,都不懂,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并發是生產者和消費者得具體應用,第一個類負責生產東西放入到隊列中,第二個類用于從隊列中拿出東西進行操作。最后一個是用于測試的,啟動了一個生產的線程,兩個消費的線程。
這個還可以和線程池進行結合現在我還不是很會,等會了再貼上代碼