![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
朱颜_辞镜
新征程,再出发!
展开
-
关于线程的40个问题
个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问...原创 2019-03-21 10:56:02 · 214 阅读 · 0 评论 -
并发编程里面的基本概念
上下文切换:cpu是通过时间片分配算法(抢占式的)来循环执行任务的,当前任务执行完一个时间片后会切换到下一个任务。但是切换到下一个任务之前,要保存上一个任务的状态,以便下次切回这个任务时,可以重新加载这个任务的状态。任务从保存状态到重新加载就是一次上下文切换。多线程执行任务不一定比串行执行的快。线程越多,上下文切换所需要的时间越长。因此,创建合理的线程数来执行任务是十分必要的。当然,减少上...原创 2019-03-21 10:56:19 · 100 阅读 · 0 评论 -
公平锁,非公平锁,乐观锁,悲观锁的概念及应用场景
公平锁:线程在获取锁之前,看是否有队列在等待,如果有的话就按照顺序获取锁,先到先得!非公平锁:直接获取锁,如果没有获取到直接排到队列尾部等待。一般来说,用到的都是非公平锁,非公平锁的性能比公平锁的性能快5—10倍,因为公平锁单独维护了一个队列,如果当前线程不是队列第一个元素则获取不到锁,增加线程切换的次数。java.util.concurrent包下的ReentrantLock类提供的...原创 2019-03-21 10:56:35 · 2992 阅读 · 2 评论