Discuss / Java / ThreadPoolExecutor提交过多会报RejectedExecutionException

ThreadPoolExecutor提交过多会报RejectedExecutionException

Topic source
import java.util.concurrent.*;public class executor {    public static void main(String[] args) {//        ExecutorService executorService = Executors.newFixedThreadPool(6);//        ExecutorService executorService = Executors.newCachedThreadPool();        ExecutorService executorService = new ThreadPoolExecutor(4, 8, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(true));        for (int i = 0; i < 8; i++) {            String name = Integer.toString(i);            executorService.submit(() -> {                System.out.println("start task " + name);                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                }                System.out.println("end task " + name);            });        }        executorService.shutdown();    }}

第一段不知怎么把格式复制漏了。。

import java.util.concurrent.*;public class executor {    public static void main(String[] args) {//        ExecutorService executorService = Executors.newFixedThreadPool(6);//        ExecutorService executorService = Executors.newCachedThreadPool();        ExecutorService executorService = new ThreadPoolExecutor(4, 8, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(true));        for (int i = 0; i < 8; i++) {            String name = Integer.toString(i);            executorService.submit(() -> {                System.out.println("start task " + name);                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                }                System.out.println("end task " + name);            });        }        executorService.shutdown();    }}

姜林升_CN

#3 Created at ... [Delete] [Delete and Lock User]

思考:

Q1:在FixedRate模式下,假设每秒触发,如果某次任务执行时间超过1秒,后续任务会不会并发执行?

A1:If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.

译:如果此任务的任何执行时间超过其周期,则后续执行可能会延迟开始,但不会并发执行。

Q2:如果任务抛出了异常,后续任务是否继续执行?

A2:If any execution of the task encounters an exception, subsequent executions are suppressed. 

译:如果任务的任何执行遇到异常,则将禁止后续任务的执行。

优秀!手动点个赞

何以忘言i

#5 Created at ... [Delete] [Delete and Lock User]

ni~~~ce

🌙

#6 Created at ... [Delete] [Delete and Lock User]

第一个问题大家说法,好像不一样,去问一下gpt


  • 1

Reply