![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 79
old~boy
java
展开
-
并发编程[5] —线程池
Executor框架Executor框架基本使用流程什么是线程池?为什么要用线程池?1、降低资源的消耗。降低线程创建和销毁的资源消耗;2、提高响应速度:线程的创建时间为T1,执行时间T2,销毁时间T3,免去T1和T3的时间3、提高线程的可管理性。实现一个我们自己的线程池1、线程必须在池子已经创建好了,并且可以保持住,要有容器保存多个线程;2、线程还要能够接受外部的任务,运行这个任务。容器保持这个来不及运行的任务.JDK中的线程池和工作机制线程池的创建ThreadPoolExecu.原创 2020-05-18 23:42:47 · 121 阅读 · 0 评论 -
并发编程[3]—ConcurrentHashMap和阻塞队列
1.ConcurrentHashMapHashmap多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获取Entry。HashTable使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入阻塞或轮询状态。如线程1使用put进行元素添加,线程2不但不能使用put方法添加元素,也转载 2020-05-13 00:53:25 · 519 阅读 · 0 评论 -
并发编程[4]—AQS【并发的半壁江山】
1.AbstractQueuedSynchronizer深入分析AQS使用方式和其中的设计模式了解其中的方法模板方法:独占式获取accquireacquireInterruptiblytryAcquireNanos共享式获取acquireSharedacquireSharedInterruptiblytryAcquireSharedNanos独占式释放锁release共享式释放锁releaseShared需要子类覆盖的流程方法独占式获取 tryAcquire独占式释放原创 2020-05-10 17:39:43 · 150 阅读 · 0 评论 -
并发编程[2]—各种并发类,CAS,各种锁
常用的并发工具类CountDownLatch作用:是一组线程等待其他的线程完成工作以后在执行,加强版joinawait用来等待,countDown负责计数器的减一CyclicBarrier让一组线程达到某个屏障,被阻塞,一直到组内最后一个线程达到屏障时,屏障开放,所有被阻塞的线程会继续运行CyclicBarrier(int parties)CyclicBarrier(int parti...原创 2020-01-05 13:56:20 · 135 阅读 · 0 评论 -
并发编程[1]—基础篇
1、线程基础、线程之间的共享和协作基础概念CPU核心数和线程数的关系核心数:线程数=1:1 ;使用了超线程技术后—> 1:2(单核CPU最能处理单个线程)CPU时间片轮转机制又称RR调度,会导致上下文切换(CPU分给配置线程的运行时间:时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在...原创 2019-12-01 18:15:23 · 183 阅读 · 0 评论