首页
标签
开源
若依框架
前端
知识点
ES6
vue
element-ui
后端
java
算法
设计模式
工具
数据库
MySql
Redis
环境资源
开发环境
Docker
容器
Linux
文档资源
文章归档
图库
1
解决URL出现ZERO-WIDTH SPACE (ZWSP, 0宽度不可见字符)的情况
2
java8新特性函数式接口Function使用方法详解
3
Linux普通用户添加sudo权限,su/sudo详解
4
免费的随机图库 Lorem Picsum,通过改变网址规则获取指定格式的图片
5
给线程池自定义线程名字,方便问题回溯
孔子说JAVA
成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!
累计撰写
377
篇文章
累计创建
136
个标签
累计收到
12
条评论
栏目
首页
标签
开源
若依框架
前端
知识点
ES6
vue
element-ui
后端
java
算法
设计模式
工具
数据库
MySql
Redis
环境资源
开发环境
Docker
容器
Linux
文档资源
文章归档
图库
搜索
标签搜索
图片
idea功能
npm
nodejs
流媒体
服务器资源
Tomcat问题
docker问题
Elasticsearch
mysql安全
xss
应用安全
sql问题
redis技巧
redis配置
Druid
solr
mvn5
IP
问题
ftp
kafka
zookeeper
jdbc
查找算法
json
代码技巧
spring
解决方案
并发编程
浏览器
linux教程
linux问题
Java进阶
异常处理
文件上传下载
html
安全问题
前端问题
CSP
JS
ES6
Git-SVN
git
svn
CICD
jenkins
helm3
容器编排
算法
设计模式
GraphicsMagick
工具
配置
面试题
多线程
线程dump
jstack
jvm调优工具
jvm
常用网址
项目打包
windows服务
war部署
jar部署
Maven
SpringBoot
Logging
Log4j
Logback
SLF4J
java日志
Docker-compose
私有仓库
DockerHub仓库
Docker镜像
Dockerfile
redis容器
tomcat容器
tomcat
mysql容器挂载
mysql容器配置
mysql8
docker安装配置
docker学习
docker命令
docker教程
redis集群
redis哨兵
redis主从复制
开发规范
java文档
lombok
idea配置
idea jdk配置
idea
mysql函数
mysql
nginx
web服务器搭建
TOMCAT9安装配置
MYSQL8安装配置
JDK8安装配置
WEB服务器
SSH常见问题
linux工具
linux su/sudo命令
linux进程命令
linux查找命令
linux还原
linux解压缩
linux压缩
linux备份
linux用户权限
linux用户组
linux用户账号
linux快捷键
linux常用操作
linux命令
vim
ubuntu
linux
若依动态表格
若依端口号
redis
若依vue
树型列表
下拉菜单
el-tree
el-select
element-ui
安装部署
ruoyi
ruoyi-vue
vue
java
目 录
CONTENT
以下是
并发编程
相关的文章
2022-12-22
给线程池自定义线程名字,方便问题回溯
在日常开发项目中,我们一般都会创建一个或多个线程池用来资源隔离,如果没有给线程池指定名称的话,万一线程抛出异常了,日志记录将无法定位到底是哪个线程池抛出的异常;所以为了方便排查,给线程池的线程自定义命名,主要方法就是重写生产线程工厂的命名方法。
2022-12-22
95
0
0
后端技术
JAVA
2022-12-20
如何合理设置线程池中的线程数量
线程池确实可以减少线程创建和销毁的开销,提高效率,可以复用线程。而线程池中合适的线程数量可以充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能。但是一个线程池中应该指定多少线程合适呢?指定多少核心线程,最大线程数设置为多少合适呢?其实具体的线程数量需要根据不同的服务器和不同的使用场景确定的,脱离了场景去说线程池指定多少线程合适是没有意义的。
2022-12-20
75
0
0
后端技术
JAVA
2022-12-19
Java多线程编程之Exchanger的使用方法
Exchanger(交换者)是一个用于线程间协作的工具类,主要用于两个线程间的通信,Exchanger提供一个同步点,在这个同步点,两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据,如果第一个线程先执行exchange()方法,它会一直等待第二个线程也执行exchange方法,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。
2022-12-19
66
0
0
后端技术
JAVA
2022-12-18
Java多线程编程之Semaphore的使用方法
Semaphore(信号量)通常我们叫它信号量,是JUC包下的一个工具类,用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。常用于限流。当一个线程执行时先通过其方法进行获取许可操作,获取到许可的线程继续执行业务逻辑,当线程执行完成后进行释放许可操作,未获取达到许可的线程进行等待或者直接结束。
2022-12-18
100
0
0
后端技术
JAVA
2022-12-17
Java多线程编程之CyclicBarrier的使用方法
CyclicBarrier是一个同步工具类,拆开来翻译就是循环(Cycle)和屏障(Barrier)。它的主要作用是用来进行线程协作,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会被打开,所有被屏障阻塞的线程才会继续执行,不过它是可以循环执行的,这是它与CountDownLanch最大的不同。CountDownLanch是只有当最后一个线程把计数器置为0的时候,其他阻塞的线程才会继续执行。
2022-12-17
59
0
0
后端技术
JAVA
2022-12-16
Java多线程编程之CountDownLatch的使用方法
CountDownLatch 是一个同步工具类,常常被称作"计数器",它允许一些线程(1-N个)一直阻塞,直到其他线程执行完后才继续往下执行,主要用来协调多个线程之间的同步。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。count down是倒数的意思,latch则是门闩的含义,整体含义可以理解为倒数的门栓,该计数器的初始值是线程的数量。
2022-12-16
52
0
1
后端技术
JAVA
2022-08-01
java并发编程之DelayQueue延时队列原理及实战
DelayQueue延时队列是一种阻塞队列,是由优先级堆支持的、基于时间的调度队列,内部基于无界队列PriorityQueue实现,而无界队列则基于数组的扩容实现。入队的对象必须要实现Delayed接口(Delayed继承自Comparable接口),出队的对象必须在规定的到期时间之后才能取走。该队列是有序的,即在创建元素时,可以指定多久可以从队列中获取到当前元素。只有在延时期满才能从队列中获取到当前元素。
2022-08-01
340
0
0
后端技术
JAVA
2022-07-31
Java并发编程之SynchronousQueue阻塞队列原理及实战
SynchronousQueue,实际上它不是一个真正的队列,由于它不会为队列中元素维护存储空间。与其余队列不一样的是,它维护一组线程,这些线程在等待着把元素加入或移出队列。java若是以洗盘子的比喻为例,那么这就至关于没有盘架,而是将洗好的盘子直接放入下一个空闲的烘干机中。这种实现队列的方式看似很
2022-07-31
122
0
0
后端技术
JAVA
2022-07-30
Java并发编程之TransferQueue阻塞队列原理及实战
JDK7对JDK5中的J.U.C并发工具包进行了增强,其中之一就是新增了TransferQueue接口,该接口在 BlockingQueue 提供的方法基础上,增加了 transfer 方法,与 BlockingQueue 的阻塞方法在队列满或空的时候才阻塞不同,该方法确保生产者会一直阻塞直到所添加到队列的元素被某一个消费者所消费(不仅仅是添加到队列里就完事),顾名思义,阻塞就是发生在元素从一个线程transfer到另一个线程的过程中,它有效地实现了元素在线程之间的传递。
2022-07-30
146
0
0
后端技术
JAVA
2022-07-28
Java并发编程之LookSupport原理及实战
java.util.concurrent 包里的源码频繁使用的 LockSupport 是一个线程阻塞的工具类,是用来创建锁和其他同步类的基本线程阻塞原语。如 AQS 的底层实现就用到了 LockSupport.park()方法和 LockSupport.unpark()方法。该类中的所有方法都是静态方法,可以让线程在任意位置阻塞,阻塞之后也有对应的解锁方法,底层调用了Unsafe中的native方法。主要核心API为 park 和 unpark 方法,分别用来阻塞线程和解除阻塞线程。
2022-07-28
161
0
0
后端技术
JAVA
1
2
3
4