2015-04-08 3 views
-2

Мне нужно периодически вызывать метод, не используя класс Timer. Этот метод будет вызываться несколькими потоками.Вызывать метод с регулярными интервалами с использованием Java

+2

Просим предоставить дополнительную информацию. В идеале вы можете просто вызвать метод из каждого потока в цикле while, имеющего сон между каждой итерацией. –

+0

http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html – Holger

ответ

0

Вы можете использовать Thread.sleep (миллисекунды), где миллисекунды - это интервал в миллисекундах.

5

Вы можете использовать ExecutorService как ScheduledExecutorService и его метод scheduleAtFixedRate.

ScheduledExecutorService exec = Executors.newScheduledThreadPool(4); 
exec.scheduleAtFixedRate(
    new Runnable(){ 
     @Override 
     public void run() { 
      System.out.println("hello"); 
     } 
    } 
    ,0, 1, TimeUnit.SECONDS 
    //initialDelay, period, unit 
); 

exec.scheduleAtFixedRate(
    () -> System.out.println("world"), 
    500, 1000, TimeUnit.MILLISECONDS 
    //initialDelay, period, unit 
); 
Смежные вопросы