`
jsczxy2
  • 浏览: 1277574 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

本人对java中的volatile的理解

阅读更多

以下纯属个人观点,有错误在所难免,还请大家指正!

 

volatile这个修饰符为了保证多个线程中调用的资源不会生成多个副本,只有1个副本,那么我就想到应该用这个修饰符进

 

行字段的修饰,那么该字段就可以放心在多线程中被调用了么?通过实际观察,显然有点问题,就是当该字段资源被读取时

 

没有任何问题,但是如果有并发修改的时候还是会出现一定的时间差问题,因此在修改该字段资源的时候必须加锁,这样就

 

明确了,做法就是先用volatile来修饰字段,然后再读取时候可以直接读取,但是在修改的时候需要在修改方法上加上

 

synchronized给该方法加同步锁,这样一来就万无一失了,而且读取不加同步锁也会大大增加效率。所以volatile修饰符

 

还是很有用的。

 

详细应用详见java实现简单线程池这篇文章。

分享到:
评论

相关推荐

    java volatile 关键字实战

    java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java ...

    Java线程:volatile关键字

    正确使用 volatile 变量的条件是:对变量的写操作不依赖于当前值,以及该变量没有包含在具有其他变量的不变式中。在实际应用中,这些条件表明,可以被写入 volatile 变量的这些有效值独立于任何程序的状态,包括变量...

    violate java-Java 之 volatile 超级详解

    在Java中,当一个变量被声明为`volatile`时,编译器会确保对该变量的所有读写操作都是原子性的,并且确保所有线程看到的该变量的值是最新的。这意味着,如果一个线程修改了`volatile`变量,其他线程无需额外的同步...

    一文精通Java中的volatile关键字

    Java中的`volatile`关键字是多线程编程中的一个重要概念,它的主要作用是确保共享变量的可见性和禁止指令重排序。本文将深入探讨`volatile`的关键特性、工作原理以及使用注意事项。 1. 可见性: `volatile`关键字...

    Java中volatile关键字的总结.docx

    Java中的`volatile`关键字是用于处理并发编程中线程间通信和可见性的重要工具。它是一种轻量级的同步机制,比`synchronized`锁更为高效,因为它不会导致线程上下文的切换和调度,减少了不必要的开销。然而,`...

    解析java中volatile关键字

    Java中的`volatile`关键字是多线程编程中的一个重要概念,它的主要作用是解决并发环境下的可见性和有序性问题。在Java内存模型(JMM)中,每个线程都有自己的工作内存,其中包含了线程对共享变量的副本。线程间的...

    Java并发编程:volatile关键字解析

    总结来说,`volatile`关键字是Java并发编程中一个非常重要的概念。它不仅解决了多线程环境下的可见性问题,还能够在一定程度上保证有序性。然而,它并不保证复合操作的原子性,因此在设计并发程序时,还需要根据具体...

    java 中volatile和lock原理分析

    《Java中volatile与锁原理分析》 在多线程编程中,确保数据的一致性和可见性是至关重要的。Java提供了两种主要的机制来实现这一目标:volatile关键字和锁。本文将深入探讨这两种机制的原理,以及它们在实际编程中的...

    【Java面试题】volatile的作用

    【Java面试题】volatile的作用

    深入解析Java中的volatile关键字:原理、应用与实践

    在Java并发编程中,volatile关键字是一种轻量级的同步机制,它用于确保变量的可见性和有序性。本文将详细探讨volatile关键字的工作原理、使用场景以及如何在实际开发中正确使用volatile。 volatile关键字是Java并发...

    Java并发volatile关键字.docx

    在深入理解volatile的关键特性之前,我们需要先了解Java内存模型(JMM,Java Memory Model)的基本概念。 JMM规定,每个线程都有自己的工作内存,用于存储从主内存中复制的共享变量副本。线程执行运算时是基于工作...

    Java volatile与AQS锁内存可见性

    从JUC中的AQS引入,讲解Java volatile与AQS锁内存可见性

    多方面解读Java中的volatile关键字.rar

    下面我们将从多个角度深入解读Java中的`volatile`关键字。 1. **可见性**:`volatile`关键字确保了变量的修改对所有线程是立即可见的。当一个线程修改了`volatile`变量后,其他线程能够立即看到这一变化,而无需...

    18Java内存模型:Java中的volatile有什么用?1

    在Java中,`volatile`关键字是用于解决并发问题的一个关键工具。它主要提供以下两个功能: 1. **可见性**:当一个线程修改了一个`volatile`变量时,这个修改会立即对其他所有线程可见。这意味着一旦一个线程修改了`...

    java里的volatile关键字详解

    下面是对Java中的Volatile关键字详解的知识点总结: 一、基本概念 1. 可见性:可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的...

    Java 关键字 volatile 的理解与正确使用

    Java 关键字 volatile 的理解与正确使用 Java 语言中关键字 volatile 被称作轻量级的 synchronized,与 synchronized 相比,volatile 编码相对简单且运行时的开销较少,但能够正确合理地应用好 volatile 并不是那么...

    谈谈Java中Volatile关键字的理解

    总的来说,`volatile`关键字是Java中处理并发问题的一种有效工具,它提供了可见性和部分有序性保证,但不能保证原子性。在编写多线程代码时,开发者需要结合`synchronized`、`Atomic`类等其他并发工具,合理利用`...

    java语言的volatile教程,java语言的volatile关键字是干什么用的

    java语言的volatile教程,java语言的volatile关键字到底怎么用

    java volatile 关键字 学习

    java volatile 关键字 学习

    Java中Volatile的作用实例解析

    Java 中 Volatile 的作用实例解析 Volatile 变量在 Java 语言中扮演着重要的角色,它可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少...

Global site tag (gtag.js) - Google Analytics