Java并发编程
文章平均质量分 91
我爱刮刮乐
这个作者很懒,什么都没留下…
展开
-
JAVA中各种锁的介绍
本节内容:java锁介绍偏向锁、轻量级锁、重量级锁可重入锁、非可重入锁共享锁、独占锁公平锁、非公平锁悲观锁、乐观锁自旋锁、非自旋锁可中断锁、不可中断锁synchronized锁介绍什么是synchronized锁synchronized关键字在同步方法中的应用synchronized关键字和Lock接口对比公平锁和非公平锁公平锁和非公平锁公平锁和非公平锁效果展示读写锁为什么设置读写锁读写锁规则读写锁使用展示读锁插队策略读写锁的升降级自旋锁原创 2021-03-15 11:52:12 · 930 阅读 · 1 评论 -
一篇文章彻底拿下HashMap面试!!!
本文目录HashMap的设计思想HashMap的底层结构为什么不一开始就使用HashMap结构为什么Map中的节点超过8个时才转换成红黑树为什么HashMap不是线程安全的同时put碰撞导致数据丢失扩容期间取出的值不准确HashMap在java7和java8中的区别底层数据结构对比插入方式对比扩容方式对比ConcurrentHashMap在java7和java8中的区别数据结构并发程度遇到Hash碰撞HashMap的设计思想HashMap的底层结原创 2021-03-08 10:23:58 · 1372 阅读 · 2 评论 -
多线程基础
**本节内容:**## [线程的状态](#jump1)## [wait/notify/notifyAll/sleep方法的介绍](#jump2)## [如何正确停止线程](#jump3)## [有哪些实现生产者消费者的方法](#jump4)### <span id="jump1">线程的状态/span>线程一共有六种状态,分别是New(新建)、Runnable(可运行)、Blocked(阻塞)、Waiting(等待)、Timed WaitIng(计时等待)、Ter..原创 2021-02-23 11:28:42 · 1247 阅读 · 9 评论 -
万字线程池学习总结!!!
本文目录为什么要使用线程池?为什么要使用线程池? 反复创建线程系统开销比较大,而且每个线程的创建和销毁都需要时间,如果任务比较简单,那么有可能导致线程的创建和销毁占用的资源超过执行任务所消耗的资源. 如果当要执行的任务比较多时,每个线程负责一个任务,那么需要创建很多线程去执行任务,过多的线程会占用过多的内存资源等,还会带来上下文切换,同时还会导致系统不稳定. 线程池好处 线程池解决了线程生命周期的系统开销问题,线程池中的线程可以反复使用,可以用少量的线程去执行大...原创 2021-01-25 19:48:46 · 656 阅读 · 1 评论 -
CAS原理
目录CAS简介CAS思路CAS使用场景CAS问题总结CAS简介CAS的英文全称是Compare-And-Swap,意思就是比较并交换,他是原子类的底层原理,同时也是乐观锁的原理,CAS的特点是避免使用互斥锁,当多个线程同时更新同一个变量时,只有一个线程可以更新成功,其他的线程都会更新失败,和同步互斥锁不同的是,更新失败的线程并不会被阻塞,而是被告知此次竞争失败,下次还可以继续竞争。CAS思路首先,在大多数处理器指令中,CAS操作是一条(而不是多条)cpu...原创 2021-01-06 13:37:22 · 3166 阅读 · 1 评论