close

import java.util.concurrent.BlockingQueue;

public class T1 extends Thread {
    private BlockingQueue<Integer>q;
    public T1(BlockingQueue<Integer>q){
        this.q = q;
    }

    @Override
    public void run() {
        try {
            q.add(1);
            Thread.sleep(1000);
            q.add(2);
            Thread.sleep(2000);
            q.add(3);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 

import java.util.concurrent.BlockingQueue;

public class T2 extends Thread {
    private BlockingQueue<Integer>q;
    public T2(BlockingQueue<Integer> q) {
        this.q = q;
    }

    @Override
    public void run() {
        try {
            System.out.println(q.take());
            System.out.println(q.take());
            System.out.println(q.take());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class Test0610 {

    public static void main(String[] args) {
        BlockingQueue<Integer> q = new ArrayBlockingQueue<Integer>(1);
        T1 t1 = new T1(q);
        T2 t2 = new T2(q);
        t1.start();
        t2.start();
    }
}

 

參考:http://15jb.net/java-%E4%B8%AD-%E9%98%BB%E5%A1%9E%E9%9A%8A%E5%88%97blockingqueue%E8%A9%B3%E8%A7%A3%E5%8F%8A%E5%AF%A6%E4%BE%8B

arrow
arrow
    文章標籤
    BlockingQueue 阻塞列隊 java
    全站熱搜
    創作者介紹
    創作者 淺翔 的頭像
    淺翔

    翔の學習淺談

    淺翔 發表在 痞客邦 留言(0) 人氣()