タイミングタスクのスケジューリング
タイマーとTimetaskによって、我々はスレッドを開始するタイミングを達成することができます。
java.util.Timer
この実装では、Timerクラスアクションは、アラームクロック機能、すなわち、タイミング又は所定の時間間隔でスレッドをトリガです。実際には、Timerクラス自体はスレッドを達成することであるが、そのスレッドは他のスレッドへの呼び出しを実装するために使用されます。
java.util.TimerTask
TimerTaskをクラスは、Runnableインタフェースを実装する抽象クラスである、マルチスレッド機能のクラスがあります。
この実装では、継承TimerTaskをする能力によってクラスがマルチスレッド得るために、マルチスレッド・コードは、タイマクラス開始スレッドを実行することによって、次に実行メソッド内の書き込みおよび実行するために必要とされるであろう。
java.util.Timerの使用
パブリック クラスTestTimer { 公共 静的 ボイドメイン(文字列[]引数){ タイマT1 = 新しい新しいタイマ(); // カスタムタイマー; にMyTaskにタスク1 = 新たな新しい MyTaskに()であり; // タスクを定義し、 t1.schedule(task1,3000) ; // 3秒間実施; // t1.schedule(task1,5000,1000); // 秒ごとに一度実行5秒後に! // てGregorianCalendar Calendar1てGregorianCalendar新しい新=(2010,0,5,14,36,57); // t1.schedule(タスク1、calendar1.getTime()); // 時間の指定された実行タイミング; } } クラスMYTASKする延び TimerTaskをを{ // カスタム・スレッド・クラスは、クラスTimerTaskをを継承し、 公共 ボイドRUNを(){ ため(int型 I = 0;私は<10; I ++ ){ するSystem.out.println( "タスク1:" + I); } } }
図に示した結果:
あなたは上記のプログラムを実行すると、出力の前に大幅な遅延(おそらく3秒!)がある感じることができます。それを自分自身をしようとするいくつかの方法があります!
実際の使用では、タイマが達成TimerTaskをスレッドの任意の数を活性化することができるが、複数のスレッド間が遮断されます。あなたが複数のスレッド間で完全に別の単語を必要とするのであれば、それはTimerTaskをタイマを達成開始するのがベストです。
===========
@Scheduledコメント
https://www.jianshu.com/p/1defb0f22ed1
Springboot統合された非同期の定期的なタスク
https://blog.csdn.net/qq_32447301/article/details/84668865
春ブーツは、通常のタスクが付属して、ピットのいくつかの数週間を表す時間表現。。
https://blog.csdn.net/z1040141848/article/details/96973459
springboot統合された石英は、動的な定期的なタスクを達成します
実際の開発では、我々はオープンソースのフレームワークquanz、より便利なスケジューリングタスクの実現のタイミングを使用することができます。実際には、コンテンツquanz基本原理は、ここに示されています。
https://blog.csdn.net/z291197968/article/details/82351471