ScheduledThread池和单线程执行器之间的区别。
序号 | 键 | 预定线程池 | 单线程执行器 |
---|---|---|---|
1 | 基本的 | 创建一个线程池,该线程池可以安排命令在给定的延迟后运行或定期执行。 | 确保任务按顺序执行,并且在任何给定时间都不会激活一个以上的任务 |
2 | 队列 | 它使用延迟队列存储任务。根据时间安排任务。 | 它使用阻塞队列。 |
3 | 线程寿命 | 即使空闲,要保留在池中的线程数 | 如果由于任务而被杀死,请重新创建线程。 |
4。 | 线程池大小 | 它始终只有一个线程在运行。 | 线程池可以从零个线程增长到Integer.MAX_VALUE |
5, | 用例 | 当我们想限制并发任务时,我们应该使用fixedthreadpool | 当您要确保Task1始终在task2之前运行时,可以使用这种类型的池。 |
ScheduledThreadPool的示例
public class ScheduledThreadPoolExample {public static void main(String args[]) {
ScheduledExecutorService services = Executors.newScheduledThreadPool(10);
services.schedule(new Task(), 10, TimeUnit.SECONDS);
services.scheduleAtFixedRate(new Task(), 15, 10, TimeUnit.SECONDS);
//(new Thread(new Main())).start();
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}
SingleThreadExecutor的示例
public class Main {public static void main(String args[]) {
ExecutorService services = Executors.newSingleThreadExecutor();
Future<?> future = services.submit(new Task());
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}
以上是 ScheduledThread池和单线程执行器之间的区别。 的全部内容, 来源链接: utcz.com/z/340912.html