JAvaタイマとマルチスレッドの実践記録


ここ数日mongodbの読み書き分離の問題をテストする必要があるため、タイミングクエリープログラムを書き、マルチスレッドを使用して、タイミング的に複数のスレッドクエリーデータベースを起動する効果を達成し、下のコードはメモを記録します.
package timmer;

import java.util.Timer;
import java.util.TimerTask;

import mongoService.mongoServiceImp.AlarmServiceImpl;

import com.mongodb.DBObject;

public class StartTim {

  //            
  public static void main(String[] args) {
    Timer timer1 = new Timer();
    //  1       ,    5     ,
    timer1.schedule(new MyTask(), 1000, 5000);
  }

  // java      timerTask 
  static class MyTask extends TimerTask {
    AlarmServiceImpl alarmService = new AlarmServiceImpl();

    //             
    public void run() {
      for (int i = 0; i < 3; i++) {
        new Thread(new MyThread(alarmService)).start();
      }
    }
  }

  static class MyThread implements Runnable {
    AlarmServiceImpl alarmService;

    public MyThread(AlarmServiceImpl alarmService) {
      super();
      this.alarmService = alarmService;
    }

    public void run() {
      System.out.println(Thread.currentThread().getName());
      test();
    }

    public void test() {
      System.out.println("   ");
      DBObject list = alarmService.findAlarm();
      System.out.println(list);
    }
  }
}