![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
文章平均质量分 85
银灵子Qincheng
曾在鹅厂、菊厂体验过生活,目前在猫厂被生活体验。公众号:我的IT技术路。关注我,一起聊聊感兴趣的。
展开
-
浅析java内存模型
在java语言中,定义java内存模型(JMM)使得程序员更好的理解java并发,同时也屏蔽了java语言在不同处理器上的内存读取的不一致性。为了要达到这个要求,所有的芯片设计商需要满足相关的协议,用来保证数据的一致性、可靠性。Java语言的数据在jvm中分为堆、栈、计数器、本地方法栈、代码区。本次要讨论的JMM主要定义的是堆中的数据。而像栈、计数器、本地方法栈,代码区,这些区域的数据在单线程和多线程没有什么差别。只有在堆中的数据才有可能会受到多线程的影响,可能会产生数据不一致性。并发编程中,有两个基本原创 2021-04-17 16:04:03 · 94 阅读 · 0 评论 -
Volatile底层实现原理
在java中,关键字volatile那是必须要掌握的,这在多线程并发中大量被使用。从之前的jdk源码也可以知道,volatile和CAS构成了java语言高并发的基石。我们一般会把volatile称为轻量级的锁,有时我们在使用volatile的时候能够达到更高的并发。那么关键字volatile的作用是什么?我们在实际中如果需要使用volatile的话,无非是保证有序性和可见性。有序性和可见性在之前的 并发的特性中有介绍。那么volatile是怎么实现这两个特性的呢。可见性:在了解可见性性之前..原创 2021-04-12 09:44:01 · 356 阅读 · 0 评论 -
java并发三大特性--有序性、可见性、原子性
在java并发编程中,我们一般会说需要满足以下三个基本条件才能构成java并发的基础,这三个特性分别是:有序性、可见性、原子性。那么这三个特性到底是一个怎么样的概念呢,下面我们将通过一些例子来详细说明一下这几个概念。有序性:有序性是指在java并发中,如果执行编码的两条指令按照代码的先后顺序执行。设想一下,如果代码的执行顺序和我们看到的代码顺序不一样,那很可能会导致结果错乱。可为什么会导致代码执行和我们编写看到的不一样呢?这是因为编译器,处理器为了提升执行效率会对代码编译过后的执行指令进行重新排序(指令原创 2021-04-11 10:20:51 · 1051 阅读 · 0 评论 -
进程or线程
进程or线程1.什么是进程,线程及相关概念?在操作系统中,一开始就会介绍进程,线程,这些概念,但对于刚接触的来说还是显得有些难以理。之前在网上看到一篇博客在描述操作系统中的概念做了个形象的比喻,很贴切。这里引用拓展一下:计算机处理计算任务的主要硬件是CPU,CPU就好像一个工厂。进程就是工厂的车间,如果工厂的供电有限,一次只能给一个车间开工干活,这个车间在干活的时候,其他车间就无法占用CPU,他们只能等待。这就是单核CPU只能每次只能处理一个进程的计算。至于多核的话,这个就好比他们又新建了一原创 2021-04-11 10:12:10 · 72 阅读 · 0 评论