java.util.BlockingQueue
によってサービスが必要なPOJOでいっぱいのがありますExecutorService
。このキューは単一のスレッドによって処理される必要がありますが、一度に複数のスレッドからプッシュされます。
過去に、私はこのように見えるようにソリューションを作成しましたが、私は本当にそれを軽蔑しています:
executorService.execute(new Runnable() {
@Override
public void run() {
while (true) {
try {
POJO job = blockingQueue.take();
servicePOJO(job);
} catch (InterruptedException e) {
break;
}
}
}
});
これを書くためのより良い方法はありますか、それともこれがそれを行うための最適な方法ですか?複数のコンシューマーを追加する必要がある場合は、実際のスレッドプールのサイズで上記をループで実行する必要があるためです。