volatile 介绍
volatile是一个特征修饰符,被volatile修饰的变量能够保证每个线程能够获取该变量的最新值,从而避免出现数据脏读的现象
volatile的两大特性
1、可见性:立即刷新回主内存+失效处理。
2、有序性:禁止指令重排,存在数据依赖关系的禁止重排。
...
2年前 (2023-02-04) 7888℃
1喜欢
JMM介绍
JMM是指JAVA内存模型,JVM是java虚拟机的意思,两者是截然不同的两个东西,他们两个之间的关系类似于雷锋和雷锋塔的关系
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定或规范,通过...
2年前 (2023-02-04) 1502℃
0喜欢
LockSupport是什么
Lock Support从字面意思直接翻译过来是锁的支撑类,是一个改进类。下面就看一下这个技术为什么会出现,解决了那些老技术不方便不灵活的问题。
官方解释:用于创建锁和其他同步类的基本线程阻塞原语。
核心就是park()和unpark()方法
pa...
2年前 (2023-02-03) 1150℃
0喜欢
什么是中断机制
首先:
一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。
所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。
其次:
在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,...
2年前 (2022-12-09) 3506℃
5喜欢
Future 介绍
Future 是Java5新加的一个接口,它提供了一种异步并行计算的功能。
如果主线程需要执行一个很耗时的计算任务,我们就可以通过future把这个任务放到异步线程中执行。主线程继续处理其他任务或者先行结束,在通过Future获取计算结果。
一句话:Futur...
2年前 (2022-12-07) 1429℃
0喜欢
介绍
在java.util.concurrent中,提供了工具类Executors(调度器)对象来创建线程池,可创建的线程池有四种:
1、CachedThreadPool:可缓存线程池,如果数据请求过多,它会不断创建新的线程,并且它还可以灵活回收空闲的线程
2、FixedThre...
2年前 (2022-11-19) 1500℃
1喜欢
线程池
并发是伴随着多核处理器的诞生而产生的,为了充分 利用硬件资源,诞生了多线程技术。但是多线程又存在资源竞争的问题,引发了同步和互斥的问题,JDK 1.5推出的java.util.concurrent(并发工具包)来解决 这些问题。
new Thread的弊端
new Th...
2年前 (2022-09-05) 1244℃
3喜欢
什么是线程安全问题
当我们使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题。但是如果多个线程中对资源有读和写的操作,就容易出现线程安全问题。
举例1:
举例2:
火车站要卖票,我们模拟火车站的卖票过程。...
2年前 (2022-09-05) 3794℃
0喜欢
多线程的一些概念
什么是并发:
并发就是指程序同时处理多个任务的能力。
并发编程的根源在于对多任务情况下对访问资源的有效控制。
程序、进程与线程
程序:是静态的概念,比如qq、微信、网易云音乐都是程序的一种。
进程:是动态的概念,是程序在运行的状态,进程说明程序在内存中的边界。
...
2年前 (2022-09-05) 1133℃
0喜欢