![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA 高并发
Mof_Rehoboam
毕业于北京邮电大学计算机信息管理专业。先后在移动互联网、物联网、通信等领域摸爬滚打近7年,从事过开发,也担任过产品经理。目前是全栈Java开发工程师,同时也是《学习计划》、《全名垃圾分类》等APP的作者。
展开
-
Callable接口的使用误解
这个接口不太常有,比起其它几种线程的创建方式,它的其中一个明显特点是可以有返回值。 一开始,我就觉得,既然是线程,因为是异步执行,那返回值岂不是没有机会拿到? 其实,从返回值类型Future可以看出,它是代表未来的值,使用场景一定是未来的某一个时刻去获取它的返回值。而且Futrue.get()方法在没有获取到返回值时会阻塞当前线程。如果你刚运行线程就尝试获取返回值,这样使用线程没有意义。 比如下面这段代码,100的打印在6秒之后,而不是11秒,如果去掉6秒的等待,那就是5秒之后获取到返回值: pa原创 2021-09-29 10:41:27 · 142 阅读 · 0 评论 -
JUC_并发映射
ConcurrentMap ConcurrentMap是java1.5提供的一套应对高并发的映射机制,其数据结构是数组+链表。 主要特点: 1.因为其应用了分桶/端锁、读写锁机制以及无锁算法CAS,在并发的情况下还能保住线程的安全。 2.当桶中的节点个数大于8个,将桶中的链表转为红黑树。节点个数小于7个时,转为链表。原创 2020-06-23 22:56:34 · 120 阅读 · 0 评论 -
JUC_阻塞式队列
在讲阻塞式队列之前,首先理解什么是JUC。 JUC是(java.util.concurrent的简称),是java1.5提供的一个处理线程的工具包及其子包。JUC的主要内容包括:阻塞式队列、并发映射、锁、执行器服务、原子性操作。本次给大家首先介绍的就是其中的阻塞式队列。 阻塞式队列(Blocking Queue) 顾名思义,“阻塞式”是对“队列”的形容,主语还是“队原创 2020-06-22 20:19:28 · 246 阅读 · 0 评论 -
JUC_ExecutorService详解
概述 在对数据库操作时,有连接池的概念,比如:C3P0连接池、德鲁伊连接池。而ExecutorService本质上是线程池。无论连接池也好,线程池也好,它们存在的主要意义就是减少频繁创建和销毁资源的频率,达到提高资源的利用率的目地。 可以将ExecutorService简单称作:执行器服务。 主要内容 核心线程队列 核心线程队列是ExecutorService最主要原创 2020-06-17 21:38:55 · 169 阅读 · 0 评论