package MultiThreading;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledExecutorSrvc {
public static void main (String args[]){
ScheduledExecutorService scheduledExecutorService =
Executors.newScheduledThreadPool(1);
// for (int i = 0; i<10; i++){
// scheduledExecutorService.execute(new RunnableImpl200()); //метод .execute() передаст таски в скедултредпулл
// }
//scheduledExecutorService
// .schedule(new RunnableImpl200(),3, TimeUnit.SECONDS);// метод .schedule() передаст таски для выполнения через указанный промежуток времени
//scheduledExecutorService.shutdown(); //метод .shutdown() завершает работу скедултредпула
//в противном случае если его не применить работа программы никогда не закончится
scheduledExecutorService.scheduleAtFixedRate(new RunnableImpl200(),3,1,TimeUnit.SECONDS);// метод .scheduleAtFixedRate() будет выполнять переданный в него таск
// до тех пор пока не будет остановлен мэйном
//интервал считается с начала выполнения одного таска до начала выполнения следующего
scheduledExecutorService.scheduleWithFixedDelay(new RunnableImpl200(),3,1,TimeUnit.SECONDS); //метод .scheduleWithFixedDelay делает
// то же самое, что и метод .scheduleAtFixedRate() но интервал считается от окончания таска до начала следующего
try {
Thread.sleep(8000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}//если не сделать в мейне слип скедул выключится через одну итерацию
scheduledExecutorService.shutdown();// выключает скедулл
ExecutorService ex = Executors.newCachedThreadPool(); // создаёт тред пулл который автоматически
// по мере надобности создаёт и удаляет необходимые для него потоки
}
}
class RunnableImpl200 implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
// try {
// Thread.sleep(500);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
}
}
To embed this program on your website, copy the following code and paste it into your website's HTML: