![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 53
java多线程相关知识
明目先生
这个作者很懒,什么都没留下…
展开
-
【JUC-补充】不可变对象,享元模式,final原理
不可变对象不可变对象都是线程安全的不可变的实现以string为例享元模式举例:long类举例:Sting串池final原理但是对于final来说,主要是由于写屏障能够将之前的赋值代码都放到主存当中使得使得其他人都能够同步最新的操作结果...原创 2022-03-01 17:01:00 · 64 阅读 · 0 评论 -
【JUC-补充】原子类,unsafe
reference:https://zhuanlan.zhihu.com/p/115345089atomic类提供了很多类,这些类针对不同的数据类型进行原子操作实例源码分析底层就是unsafe类的cas操作,而Unsafe底层实际上是调用C代码(native关键字修饰),C代码调用汇编,最后生成出一条CPU指令cmpxchg,完成操作。这也就为啥CAS是原子性的,因为它是一条CPU指令,不会被打断。Unsafe既然上面出现了unsafe这里详细了解一下获取unsafe:由于其构造方原创 2022-03-01 14:07:36 · 117 阅读 · 0 评论 -
【JUC】整体复盘总结
本文为整体复盘juc可以参考同样是按照黑马教程写出来的微博:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/搞清楚一下概念的区别:进程与线程,并发与并行,同步与异步知道创建新线程的三种创建方法以及特点(继承,接口,返回值知道一个线程占用一块栈内存(想象成一个容器),这个容器里是栈帧也就是方法知道方法区别:start和run,sleep与yield区别知道以下方法的作用:join与in原创 2022-02-25 16:38:37 · 446 阅读 · 0 评论 -
【JUC-3】共享模型管程相关:synchronized&lock,Monitor,wait¬ify,park&unpark,ThreadLocal
本文参考:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/#1%E3%80%81%E5%85%B1%E4%BA%AB%E5%B8%A6%E6%9D%A5%E7%9A%84%E9%97%AE%E9%A2%98知道synchronized使用方法知道变量是否逃逸,分析安全性只有读操作共享也安全synchronized底层原理是Monitor,Monitor用来识别锁对象(synchronized括号内的对象原创 2022-02-12 19:59:04 · 375 阅读 · 0 评论 -
【JUC-1】java多线程基础概念
本文参考:黑马程序员https://www.bilibili.com/video/BV16J411h7Rd?p=5&spm_id_from=pageDriver进程与线程并行并发概念同步与异步概念原创 2022-02-11 17:13:00 · 183 阅读 · 0 评论 -
【JUC-5】共享模型之无锁:CAS&原子相关
参考:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/#%E4%BA%94%E3%80%81%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9E%8B%E4%B9%8B%E6%97%A0%E9%94%81总结无锁就是乐观锁,一般为CAS策略一般情况下,使用无锁比使用加锁的效率更高了解CAS特点了解原子相关:参考原文...原创 2022-02-12 20:14:46 · 206 阅读 · 0 评论 -
【JUC-7】线程池
参考:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/#%E4%B8%83%E3%80%81%E7%BA%BF%E7%A8%8B%E6%B1%A0线程池存放执行线程主要实现原理了解其中线程池参数了解四种拒绝策略原创 2022-02-12 20:37:53 · 226 阅读 · 0 评论 -
【JUC-4】JMM:volatile&内存屏障
本文参考:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/#1%E3%80%81JAVA%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B%EF%BC%88JMM%EF%BC%89总结知道jmm定义了主存与工作内存的概念jmm三大特性volatile不能保证原子性,只能保证可见性与有序性volatile的可见性是通过禁用高速缓存实现的volatile的有序性是通过内存屏障实现原创 2022-02-12 20:09:28 · 118 阅读 · 0 评论 -
【JUC-6】共享模型之不可变:String,常见不可变设计
参考:https://nyimac.gitee.io/2020/06/08/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/#%E5%85%AD%E3%80%81%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9E%8B%E4%B9%8B%E4%B8%8D%E5%8F%AF%E5%8F%98所谓不可变是指多个线程1无法同时修改,其实就是底层使用了之前的保护技术例如final,synchronized等String是不可变类String的一些切割字符串等操作实际原创 2022-02-12 20:20:24 · 153 阅读 · 0 评论 -
【JUC-2】java线程创建,状态转换与线程方法。run与start,futureTask,守护线程特性,join
本文参考黑马程序员:https://www.bilibili.com/video/BV16J411h7Rd?p=11总结java线程分为6种状态 new是创建一个线程进入创建状态,操作系统则把线程状态分为五个:创建,可运行(就绪),运行,阻塞,终止。(这部分可参考操作系统)start与run方法–start在线程中执行方法,run在主线程执行。thread.run()sleep与yield sleep有限时间阻塞,yield让出线程进入就绪(也是阻塞)join 调用线程等待被调用线程inte原创 2022-02-11 19:43:42 · 272 阅读 · 0 评论