2016-10-17 19 views
0

私はspring schedulerメソッドを持っています。そしてExecutorServiceExecutorServiceから特定のスレッドを停止/一時停止できますか?

@Scheduled(fixedRate = 5000) 
    public void startSchedule() throws IOException{ 
threadPool.submit(() -> { 
      if(.......)return; 
      try { 
       generate(reportTasck); 
      } catch (NurException | IOException e) { 
       e.printStackTrace(); 
      } 
     }); 
      } 

5秒ごとに私の方法を開始し、必要な条件があれば、自分のロジックで新しいスレッドを開始します。特定のスレッドをどのように停止/一時停止できますか?

私はvebページにボタンを持っています。私がそれを押すと、スレッドを止める必要があります。

答えて

0

スレッドの停止に関しては、すでにかなり議論があります。いろいろな理由から、たとえばスレッドを停止または強制終了しないでください。ここで注意:

How do you kill a thread in Java?

を、例えばによって自分自身を終了させるために、スレッドの責任であるべきスレッドへの適切なクリーンアップそのリソースを可能にするために例えば定期的に何らかの状態をチェックする。共有変数またはスレッドの割り込みフラグを使用します。詳細については、この回答を参照してください。

How to stop a thread created by implementing runnable interface?

関連する問題