2017-04-26 17 views
2

Java並行処理APIを使用して、実行予定のタスクへの参照を取得するにはどうすればよいですか?スケジュールされたタスクへの参照を取得

私はこのような何かを、そしてmyRunnableへの参照保つことができます。

ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(); 
SimpleRunnable myRunnable = new SimpleRunnable(); 
exec.scheduleAtFixedRate(myRunnable, 0, 2, TimeUnit.SECONDS); 

をしかし、参照を取得するためにエグゼキュータのサービスやScheduledFutureを使用する方法はありますか?

This questionは、Futureオブジェクトのコレクションを示し、それらがタスクへの参照を保持していることを説明していますが、公開する公開APIメソッドはありません。

答えて

0

将来の参照は非同期タスクの計算結果を表しますが、タスク自体は基本的にscheduleAtFixedRateメソッド(以下の例では「myRunnable」)に渡す実行可能な参照です。

ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(); 
SimpleRunnable myRunnable = new SimpleRunnable(); 
ScheduledFuture<?> future = exec.scheduleAtFixedRate(myRunnable, 0, 2, 
TimeUnit.SECONDS); 

実行者自身からRunnableを取得する方法はありません。 あなたが達成しようとしていることを詳述してください。私はあなたを助けようとします。

+0

はい、ScheduledFutureオブジェクトの参照にハングアップする可能性がありますが、まだタスクへの参照を取得する方法はありません。 – sjgp

+0

実行者自身からRunnableを取得する方法がないと思います。あなたが達成しようとしていることを詳しく教えてください。私はあなたを助けようとします。 –

+0

私はいくつかの作業を行うために定期的にタスクを実行し、情報を収集するという要件の設計オプションを検討しています。第2の独立したプロセスは、その情報にアクセスする必要があります。 ExecutorやFuture API経由でアクセスする必要はなく、そのようなTaskを参照することはオプションではないと思われるため、私は別のソリューションを設計することができます。あなたの考えをありがとう! – sjgp

関連する問題