How to use ConcurrentLinkedQueue
ConcurrentLinkedQueue の使い方。
import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; public class HelloConcurrentLinkedQueue { private static Queue<MyObject> mQueue = null; public static void main(String[] args) { mQueue = new ConcurrentLinkedQueue<MyObject>(); Thread t1 = new Thread(new Runnable() { @Override public void run() { while (true) { mQueue.offer(new MyObject("test1")); try {Thread.sleep(300);} catch (InterruptedException e) {} } } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { while (true) { mQueue.offer(new MyObject("test2")); try {Thread.sleep(300);} catch (InterruptedException e) {} } } }); Thread t3 = new Thread(new Runnable() { @Override public void run() { while (true) { if (mQueue.isEmpty()) continue; MyObject obj = mQueue.poll(); System.out.println(obj.getStr()); try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } }); t1.start(); t2.start(); t3.start(); System.out.println("End."); } } class MyObject { private String mStr = null; public MyObject(String str) { mStr = str; } public String getStr() { return mStr; } }