我也是剛剛才學(xué)習(xí)的,不是很懂,網(wǎng)上看了看例子,都不懂,JDK自帶了一個(gè)例子。
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的并發(fā)實(shí)際上就是利用隊(duì)列進(jìn)行操作,如果對隊(duì)列和線程熟悉的話,那么這個(gè)也是比較簡單的,java并發(fā)是生產(chǎn)者和消費(fèi)者得具體應(yīng)用,第一個(gè)類負(fù)責(zé)生產(chǎn)東西放入到隊(duì)列中,第二個(gè)類用于從隊(duì)列中拿出東西進(jìn)行操作。最后一個(gè)是用于測試的,啟動(dòng)了一個(gè)生產(chǎn)的線程,兩個(gè)消費(fèi)的線程。
 這個(gè)還可以和線程池進(jìn)行結(jié)合現(xiàn)在我還不是很會(huì),等會(huì)了再貼上代碼