多线程
小王曾是少年
通信工程本硕 for NJU ;
《Intelligent Passive Eavesdropping in Massive MIMO-OFDM Systems via Reinforcement Learning》IEEE WCL 作者;
申请国家发明专利2项;
淘天集团后端开发;
有事尽量私信
展开
-
超硬核!ThreadPoolExecutor线程池源码解析
1Executor Executor是顶级接口。 使用线程池的好处如下: 可以复用线程、控制最大并发数。 实现任务线程队列缓存策略和拒绝机制。 实现如定时执行、周期执行等与时间相关的功能。 隔离线程环境。 比如,为交易服务和搜索服务分别开两个线程池,交易线程的资源消耗明显要大;因此,通过配置独立的线程池,将较慢的交易服务与搜索服务隔开,避免线程间互相影响。 Executor executor = new ExecutorSubClass(); //线程池实现类 execut...原创 2020-09-19 21:58:21 · 443 阅读 · 0 评论 -
图解AQS源码分析
1 简介 AbstractQueuedSynchronizer抽象的队列式同步器(抽象类)。提供了一个FIFO队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件,常见的有:ReentrantLock、CountDownLatch等。 2 AQS线程队列 Node是整个队列中最核心的部分,包含CANCELLED、SIGNAL、CONDITION、PROPAGATE四种状态、指向前后节点的指针、thread是节点存储的值。 ReentrantLock中的公平锁与非公平锁都...原创 2020-09-16 11:14:23 · 325 阅读 · 0 评论 -
一网打尽!synchronized关键字入门
1.1 多线程一定快吗? 有人做过这样一个实验:“一段代码,有两个方法对各自的属性进行累加操作,其中一个方法采用多线程”,部分结果如下: 我们可以明显的看到,多线程不一定比单线程快 1.2 上下文切换 单核处理器也支持多线程执行代码: 通过给线程分配时间片来实现这个机制。 时间片一般是几十毫秒,所以CPU需要通过不停地切换线程来执行。当前执行完一个时间片后会切换下一个任务。在切换前会保存当前任务的状态,可以恢复这个任务之前的状态。 任务从保存到再次被加载的过程就是一次上下文切换...原创 2020-09-12 23:13:53 · 882 阅读 · 1 评论