java.util.concurrent パッケージと Future インターフェースを参照すると、長いタスクを開始して進行状況を照会できる機能は、SwingWorker 実装クラスにのみ付属していることに気付きました (間違っていなければ)。
これは、次の疑問を投げかけます。
非 GUI、非 Swing アプリケーション (コンソール アプリケーションをイメージする) で、バックグラウンドで長いタスクを開始し、他のスレッドが進行状況を検査できるようにする方法はありますか? この機能をスイング/GUI アプリケーションに限定すべき理由はないように思えます。それ以外の場合、私が見る限り、使用可能な唯一のオプションは、Future オブジェクトを返す ExecutorService::submit を経由することです。ただし、基本の Future インターフェイスでは、進行状況を監視できません。