java8线程池创建并使用
1、创建
@Configuration
public class ThreadPoolConfig {
/**
* 创建线程池
*/
@Bean(name = "threadPool")
public ThreadPoolTaskExecutor creatPool(){
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(16); // 核心线程数目
executor.setMaxPoolSize(64); // 指定最大线程数
executor.setQueueCapacity(320); // 队列中最大的数目
executor.setThreadNamePrefix("taskThreadPool_"); // 线程名称前缀
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
// 对拒绝task的处理策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setKeepAliveSeconds(60); // 线程空闲后的最大存活时间
executor.initialize();
return executor;
}
}
2、使用
@Resource(name = "threadPool")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@Test
void jiecTest(){
threadPoolTaskExecutor.execute(()->{
for(int i=1;i<=200;i++){
System.out.println("线线程1:"+i);
}
});
threadPoolTaskExecutor.execute(()->{
for(int i=200;i>0;i--){
System.out.println("线线程2:"+i);
}
});
}
3、提交任务
无返回值的任务使用execute(Runnable)
有返回值的任务使用submit(Runnable)
java8线程池创建并使用的更多相关文章
- Java8线程池ThreadPoolExecutor底层原理及其源码解析
小侃一下 日常开发中, 或许不会直接new线程或线程池, 但这些线程相关的基础或思想是非常重要的, 参考林迪效应; 就算没有直接用到, 可能间接也用到了类似的思想或原理, 例如tomcat, jett ...
- Python 之简单线程池创建
try: from Queue import Queue, Empty except: from queue import Queue, Empty import threading import t ...
- JDBC线程池创建与DBCP源码阅读
创建数据库连接是一个比较消耗性能的操作,同时在并发量较大的情况下创建过多的连接对服务器形成巨大的压力.对于资源的频繁分配﹑释放所造成的问题,使用连接池技术是一种比较好的解决方式. 在Java中,连接池 ...
- Java队列——线程池创建的例子
线程池为线程生命周期开销问题和资源不足问题提供了解决方案.通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上.其好处是,因为在请求到达时线程已经存在,所以无意中也消除了线程创建所带来的延迟.这 ...
- java中线程池创建的几种方式
java中创建线程池的方式一般有两种: 通过Executors工厂方法创建 通过new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize ...
- C#使用线程池创建线程
using System; using System.Threading; public class Example { public static void Main() { // Queue th ...
- ThreadPoolExecutor – Java Thread Pool Example(java线程池创建和使用)
Java thread pool manages the pool of worker threads, it contains a queue that keeps tasks waiting to ...
- 使用Callable接口创建线程和使用线程池的方式创建线程
1.使用Callable接口的方式实现多线程,这是JDK5.0新增的一种创建多线程的方法 package com.baozi.java2; import java.util.concurrent.Ca ...
- Java多线程01(Thread类、线程创建、线程池)
Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于 ...
- java线程池之一:创建线程池的方法
在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式, 1.使用ThreadPoo ...
随机推荐
- 洛谷 P2629 好消息,坏消息(单调队列)
题目链接 首先想到的就是暴力前缀和,枚举一个区间每次统计前缀和,前缀和的某一个值为负数时就退出 如何枚举区间? 比如样例: \(4\) \(-3\ 5\ 1\ 2\) 可以使用一种断环为链的操作, 让 ...
- 冰河指南AI技术社区基于ChatGPT正式启动运营
大家好,我是冰河~~ 最近ChatGPT真的太火了,科技圈几乎都在争相报导这个黑科技,它能够通过学习和理解人们的语言来和人类进行对话,能够与人们进行交流,甚至可以对你提出的问题进行分析,尽可能给出你想 ...
- 学习Java Day14
今天进一步学习了Java的类,学习了LocalDay:
- C++练习6 不同参数的传递方式
当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响 当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响 1 #include <iostream> 2 ...
- Centos7作为VNCserver,本地使用VNCViewer连接
1.概念 VNC是一个远程连接工具 VNC is used to display an X windows session running on another computer. Unlike a ...
- Linux服务器数据备份恢复
转载csdn: https://blog.csdn.net/weixin_33794672/article/details/92894022
- Word 表格对文字、图文进行排版
在以前,Web 前端工程师利用 <table /> 元素对网页布局进行排版,但是如今却不推荐此元素排版了,而是改用 <div /> 元素和 CSS 弹性布局(或网格布局)对网页 ...
- 图形学101 3 transform
2d中都可以写成xy 与矩阵乘以 xy的关系 齐次坐标
- java 转发重定向
首先我们要知道: (1)request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 这个是在服务端运行的,对浏览器来说是透明的.(2)response. ...
- NOIP 2022 游记
2022 NOIP (NOI Plus) 游记 Day-9 - Day-2 一句话总结,原神打的有点小多了.现在想想真的有点后悔(但也不是很手动滑稽,如果多做几个题或者把短板数论和数据结构看看也许这次 ...