ScheduledExecutorServiceの使い方

1621 ワード

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class TestScheduledExecutorService {

    private ScheduledExecutorService scheduleExector = null;

    public void doWork() {
        scheduleExector = Executors.newScheduledThreadPool(2);

        scheduleExector.scheduleAtFixedRate(new Runnable() {

            public void run() {
                System.out.println("  2      ");
            }
        }, 2, 2, TimeUnit.SECONDS);

        scheduleExector.scheduleAtFixedRate(new Runnable() {

            public void run() {
                System.out.println("  3      ");
            }
        }, 3, 3, TimeUnit.SECONDS);

    }

    public static void main(String args[]) {
        new TestScheduledExecutorService().doWork();
    }
}
scheduleAtFixedRate(Runnable command,
                                       long initialDelay,
                                       long period,
                                       TimeUnit unit)

所定の初期遅延後に初めて有効になった定期的な操作を作成し、実行します.後続の操作には所定の周期があります.つまり、initialDelayの後に実行が開始され、initialDelay+periodの後に実行され、initialDelay+2*periodの後に実行されます.タスクのいずれかの実行に異常が発生した場合、後続の実行はキャンセルされます.そうでなければ、プログラムのキャンセルまたは終了方法を実行することによってのみタスクを終了できます.このタスクのいずれかの実行にサイクルがかかる場合は、後続の実行は延期されますが、同時に実行されません. 
public interface ScheduledExecutorService
    
    
    
    
extends
ExecutorService
1つのExecutorServiceは、所定の遅延後に実行または定期的に実行されるコマンドをスケジュールすることができる.