executorservice
でスレッドの完了を待っています。この記事では、すべてのスレッドが無限のループに依存せずに終了するのを待つための最良のアプローチを調査します。代わりに、executorserviceは、shutdown()
を使用して、タスクの完了を管理するための組み込みメカニズムを提供します。現在提出されたすべてのタスクが完了すると、executorserviceが終了します。この方法は、
Timeout:タスクの完了を待つ最大時間を指定します。 executors.newfixedthreadpool(4); その間(...) { taskexecutor.execute(new mytask()); } taskexecutor.shutdown(); 試す { taskexecutor.awaittermination(long.max_value、timeunit.nanoconds); } catch(arternedexception e){ ... }
long.max_valueタイムアウトは、すべてのタスクが完了するまでawaittermination()メソッドがブロックされることを保証します。タスクの完了が時間に敏感な場合、有限のタイムアウトを指定できます。このアプローチにより、タスク管理が簡素化され、制御された方法でスレッドの完了が保証されます。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3