首页 > 其他分享 >手动创建线程池+自定义拒绝策略

手动创建线程池+自定义拒绝策略

时间:2022-11-23 19:59:29浏览次数:46  
标签:自定义 手动 线程 executor catch new ThreadPoolExecutor

        try {
            ThreadFactory tycThreadFactory = new ThreadFactoryBuilder().setNamePrefix("tyc-call-inf").build();
            //拒绝策略,超过线程数+队列数也添加至队列,不丢弃
            RejectedExecutionHandler rejectedExecutionHandler = new RejectedExecutionHandler() {
                @Override
                public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
                    if (!executor.isShutdown()) {
                        try {
                            executor.getQueue().put(r);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };

            ThreadPoolExecutor executor = new ThreadPoolExecutor(
                    5,//核心线程
                    12,//最大线程
                    60,
                    TimeUnit.SECONDS,
                    new LinkedBlockingQueue<>(1024),
                    tycThreadFactory,
                    rejectedExecutionHandler);
            int taskSize=1000;

            for (int i = 0; i < taskSize; i++) {
                //传入一个继承Thread的线程主类
                executor.execute(new ExtendsThread());
            }
            // 关闭线程池
            executor.shutdown();
            executor.awaitTermination(1000L, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

标签:自定义,手动,线程,executor,catch,new,ThreadPoolExecutor
From: https://www.cnblogs.com/BoBo-B0BO/p/16919572.html

相关文章

  • 自定义异常类以及使用方式
    publicclassAmountOfMoneyMissMatchExceptionextendsRuntimeException{publicAmountOfMoneyMissMatchException(){super();}publicAmoun......
  • Python爬虫如何实现多线程异步
    如果自己的电脑配置高操作系统可以多任务运行的,应该首先要考虑单核CPU是怎么执行多任务的,操作系统会让各个任务交替执行。例如:任务1执行0.02秒,切换到任务2,任务2执行0.02秒,再......
  • python编程(改进的线程同步方式)
      在实际代码开发中,gui的代码并不好写。因为不管是mvc、还是mvp都有一定的局限性。那么,这个时候,我就在想,是不是可以用mvp+reactor的方法进行gui的改进操作呢?首先app编写......
  • 多线程的那点儿事(之大结局)
      多线程一直是我比较喜欢的话题,当然也是很多朋友比较害怕的话题。喜欢它,因为它确实可以提高pc的使用效率;讨厌它,因为如果对它处理不好,反而会导致更大的麻烦。这里断断续......
  • 多线程的那点儿事(之多核编程)
      多核编程并不是最近才兴起的新鲜事物。早在intel发布双核cpu之前,多核编程已经在业内存在了,只不过那时候是多处理器编程而已。为了实现多核编程,人们开发实现了几种多......
  • 给别人的(手动划掉)免责声明
    特此声明:我跑去写退役划水这一行为与DeepinC无关。不是他带的头。跟他没有关系。纯属个人行为。但是我声明的是不是有点晚了教练是不是已经骂过他了以后我少写还......
  • 搜索引擎的那些事(多线程web遍历)
       上面一篇博客当中,我们可以利用单一的线程完成网页的下载。今天,我们打算在此基础上完成多线程的访问和加载操作。使用多线程,倒不是因为这项技术有多牛,主要是因为我们......
  • 嵌入式操作系统内核原理和开发(多线程轮转)
       之前我们也谈到了线程创建,基本上简单的系统就可以跑起来了,但是还没有到多线程运行的地步。所以,我们下面试图所要做的工作就是创建更多的线程,让更多的线程运行起来。......
  • 手动获取IServiceProvider依赖注入的 服务实例
    手动获取IServiceProvider依赖注入的服务实例Task.Run(()=>{try{//Task里创建了新的IServiceScope......
  • 自定义授权过滤器分配权限
    1.在用户登录时候获取用户的角色信息  2.创建一个类,继承Attribute,和IAuthorizationFilter ......