volatile 关键字|学习笔记

本文涉及的产品
文本翻译,文本翻译 100万字符
文档翻译,文档翻译 1千页
图片翻译,图片翻译 100张
简介: 快速学习 volatile 关键字

开发者学堂课程【Java 高级编程volatile 关键字】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/298


volatile 关键字


简介:在多线程的定义之中,volatile 关键字主要是在属性定义上使用的,表示此属性为直接数据操作,而不进行副本的拷贝处理。

在一些书上就将其错误的理解为同步属性

 

1.在正常进行变量处理的时候往往会经历如下的几个步骤:

·获取变量原有的数据内容副本;

·利用副本为变量进行数学计算;

·将计算后的变量,保存到原始空间之中;

 图片2.png


2.如果一个属性上追加了 volatile 关键字,表示的就是副使用副而是直接操作原始变量,相当于节约了拷贝副本,重新保存的步骤。

package cn.mldn.demo;

class MyThread implements Runnable {

private int ticket = 5 ;

@Override

public void run() {

while(this.ticket〉0) {

try {

Thread.sleep(100);

}catch (InterruptedException e) {

e. printStackTrace();

System.out.printIn(Thread. current Thread().getName() + "理,ticket = " + this.ticket--)

public class ThreadDemo {

pub1ic static void main(String[] args) throws Exception {

MyThread mt = new MyThread( ) ;

new Thread(mt,"票子A").start();

new Thread(mt,"票子B").start();

new Thread(mt,"票子C").start();

 

 

3.解释 volatile 与 synchronized 的区别:

volatile 无法描述同步的处理,它只是一种直接内存的处理,避免了副本的操作,而 synchronized 是实现同步的;

相关文章
|
5月前
|
缓存 编译器
volatile关键字
volatile关键字
|
5月前
|
缓存 编译器 C语言
一起来探讨volatile关键字
在C语言中,volatile是一个关键字,用于告诉编译器不要对被声明为volatile的变量做优化,以确保每次对该变量的读写都直接操作内存。
|
12月前
|
缓存 安全 Java
【volatile关键字】
【volatile关键字】
|
存储 缓存 Java
volatile 关键字说明
volatile 关键字说明
46 0
|
2月前
|
存储 Java 编译器
|
2月前
|
缓存 Java 编译器
关键字: volatile详解
综上所述,`volatile`关键字是Java中实现轻量级同步的一个重要手段,主要用于确保变量的跨线程可见性,但并不保证操作的原子性。在多线程编程的过程中,合理地选择和使用 `volatile`关键字,对于提高程序的正确性和性能都至关重要。
34 0
|
存储 Java
浅谈Volatile关键字
该篇文章用来总结笔者对于Volatile关键字的理解,并不会太过深入的探讨。
129 0
浅谈Volatile关键字
|
存储 缓存 Java
volatile关键字再理解
volatile关键字再理解
volatile关键字再理解
|
缓存 前端开发 Java
volatile关键字有什么用?
volatile关键字有什么用?
volatile关键字有什么用?
|
缓存 安全 算法
你应该知道的 volatile 关键字(上)
不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能。 首先来看看为什么会出现这个关键字。