私が何年も持っていた質問: この疑似コードでは、
ExecutorService svc = Executors.newFixedThreadPool(3);
svc.submit(new Runnable() { /* code A */ });
svc.shutdown();
if(svc.awaitTermination(...)) {
// code B
.awaitTermination()
コードAとBの間 で事前発生を確立すると文書化されていません。そうでない理由はありますか?
ExecutorServiceと並行パッケージの javadoc は、タスクとサブミットされる前に実行された作業との間で発生する前に定義しますが、呼び出しが成功した後のエグゼキュータータスクとコードの間では定義しません。.awaitTermination()
文書化された事前発生関係を活用するためにコードを再構築する方法について、設計上の批評を求めているわけではないことに注意してください。ここでの私の質問は、この状況でドキュメントが事前発生について言及していない理由はありますか?
(非常に適切なタイトルにもかかわらず、これは22665198の複製ではないことに注意してください。)