多线程、并发
Rain仰望
一只正在学习中的后端菜鸟
展开
-
Java中volatile关键字的作用
由一段代码引出的问题 我们先来看这样一段简单的代码: public class VolatileThread implements Runnable{ private boolean flag = true; public boolean isFlag() { return flag; } public void setFlag(boo...原创 2020-04-01 01:26:27 · 283 阅读 · 0 评论 -
java 线程安全问题以及使用synchronized解决线程安全问题的几种方式
线程安全问题产生的原因 我们使用java多线程的时候,最让我们头疼的莫过于多线程引起的线程安全问题,那么线程安全问题到底是如何产生的呢?究其本质,是因为多条线程对同一份数据进行读、写操作的过程中,没有符合原子性。所谓原子性,就是不可再分性(早期没有发现质子、中子的时候,物理学家们都认为原子就是组成物质的最小粒子,是不可再分的)。 为什么多线程对数据进行读写时不符合原子性就会产生的线程安全问题呢?我...原创 2020-03-31 04:32:13 · 523 阅读 · 0 评论 -
分门别类总结Java中的各种锁,让你彻底记住
前言 本文需要具备一定的多线程基础才能更好的理解。 学习java多线程时,最头疼的知识点之一就是java中的锁了,什么互斥锁、排它锁、自旋锁、死锁、活锁等等,细分的话可以罗列出20种左右的锁,光是看着这些名字就足以让人望而却步了,更别说一个个去理解它们的含义了。其实我要在这里告诉大家,我们看到的其实只是假象,其实根本没有这么多锁,或者这样说,这里边有很多锁其实就是一个东西,当我们从不同的侧重点...原创 2018-03-13 20:25:03 · 12176 阅读 · 8 评论