Java のマルチスレッドでキューを扱う

ConcurrentLinkedQueue は Queue インターフェイスのスレッドセーフな実装となりまして、マルチスレッドでキューに複数のスレッドから操作がある場合はこちらを利用すると便利です。

ConcurrentLinkedQueue events = new ConcurrentLinkedQueue<Event>();
// キューに追加
events.add(new Event("START"));
events.add(new Event("END"));
// キューの先頭からデータを取得
Event event = events.poll();