schedule() metodu ile delay verme imkanı var.
submit() metodu ile delay 0 kabul edilir.
schedule metodu - Callable
İmzası şöyle.@Override
public < V > ScheduledFuture< V > schedule(final Callable< V > callable,final long delay,
final TimeUnit unit);
Örnek
Şöyle yaparız
ScheduledExecutorService service = Executors.newScheduledThreadPool(2);//run the task after 1 second ScheduledFuture<String> future = service.schedule(() -> "Hello",1,TimeUnit.SECONDS); //blocks until the thread has completed and returned result String retVal = future.get(); System.out.println(retVal); service.shutdown();
schedule metodu - Runnable + delay + TimeUnit
@Override
public ScheduledFuture< ? > schedule(final Runnable command,final long delay,
final TimeUnit unit);
Belirtilen süre sonra işi çalıştırır. Örnek
Şöyle yaparız. Bu metod servis'in kendi thread'i içinden çağrılmamalı.
İmzası şöyle.
final long millis = ...;
service.schedule(() -> {
...
}, millis, TimeUnit.MILLISECONDS);
Örnek
Şöyle yaparız
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();//Run a task after a delay of 1 secondservice.schedule(() -> System.out.println("Hello"), 1, TimeUnit.SECONDS);service.shutdown();
submit metodu - Runnable
Bu metod klasik bir Executor gibi kuyruğa girer ve bir ara çalıştırılır.ScheduledExecutorService dataTimer = Executors.newScheduledThreadPool(1);
if(isDynamic)
{
dataTimer.scheduleAtFixedRate(myRunnable, 0L, 1000, TimeUnit.MILLISECONDS);
}
else
{
dataTimer.submit(r);
}
submit metodu - Runnable + Resultİmzası şöyle.
@Override
public < T > Future< T > submit(final Runnable task,final T result);
Hiç yorum yok:
Yorum Gönder