`

java并发浅析第一篇

 
阅读更多

 

1.java 内存模型,其实管理java内存模型和os操作内存可以类比。

   java里面工作内存其实就是栈,主内存就是堆。

  操作系统中存在可见性问题,解决方案即缓存一致性,比如两个cpu共同加载了一个内存块,A进行读,B进行写,则B会发送一个写广播,在cpu间进行通信,此时写的优先级会大于读的优先级,所以A收到写广播,会将缓存中的变量置为失效,重新从内存中加载该变量。

  那么java线程之间同样存在可见性问题,线程A读取变量value,线程B写变量value,线程B写的变量不一定会立刻同步到主存,线程A读取变量不一定会从主存中读取变量。



 

2.java存在哪些并发问题?

   一.指令重排序问题,重排序并不意味着所有程序都是杂乱无章的,重排序只是重排序没有相互依赖的代码。比如构造器中创建对象,但是在还没有初始化完成变量之前就已经return了。

   二.非volatile的64位变量赋值,其它线程可能读取到的是没有操作完成的半个变量

   三.读取到的数据已经失效,已经被其它线程修改了。

 

3.java并发有哪些解决方案?

  一.第一个问题在某些情况下可以使用定义final变量,使指令重排序失效,JMM内存模型要求final类型的变量的初始化动作必须在return之前完成。

  二.第二个问题当然就是指定volatile。后面单独讨论下volatile。

  三.进行加锁的动作

  四.ThreadLocal定义线程内的变量。

 

  • 大小: 40.8 KB
0
0
分享到:
评论

相关推荐

    java并发编程2

    java并发编程pdf文档第二部分:Java并发编程实战.pdf、Java多线程编程核心技术.pdf、实战Java高并发程序设计.pdf

    java并发编程实战源码,java并发编程实战pdf,Java

    java并发编程实战源码 附有本书所有源码,maven 导入 eclipse或idea

    Java 并发核心编程

    这篇指南主要是为帮助java多线程开发人员理解并发的核心概念以及如何应用这些理念。本文的主题是关于具有java语言风格的Thread、synchronized、volatile,以及J2SE5中新增的概念,如锁(Lock)、原子性(Atomics)、并发...

    java并发编程艺术

    java并发编程艺术java并发编程艺术java并发编程艺术java并发编程艺术java并发编程艺术

    JAVA并发编程艺术 高清pdf

    JAVA并发编程艺术 高清pdf : 1.并发变成的挑战 2. java并发机制的底层实现原理 3. java 内存模型 4. java并发编程基础 5.java中的锁。。。。。。。

    java并发编程实战中文加英文版加源码

    Joseph Bowbeer是一个Java ME专家,他对并发编程的兴趣始于Apollo计算机时代。David Holmes是《The Java Programming Language》一书的合著者,任职于Sun公司。Joshua Bloch是Google公司的首席Java架构师,...

    java并发编程实践高清中文版+源码

    《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在...

    Java并发编程实战

    第1章 简介 1.1 并发简史 1.2 线程的优势 1.2.1 发挥多处理器的强大能力 1.2.2 建模的简单性 1.2.3 异步事件的简化处理 1.2.4 响应更灵敏的用户界面 1.3 线程带来的风险 1.3.1 安全性问题 1.3.2 活跃性...

    (PDF带目录)《Java 并发编程实战》,java并发实战,并发

    这就是最正宗的《Java 并发编程实战》带目录 用福昕阅读器打开查看特别的清晰

    JAVA并发编程实践

    《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在...

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    《java 并发编程实战高清PDF版》

    深入讲解java并发编程技术,多线程、锁以及java内存模型等

    java 并发编程实践

    java 并发编程实践java 并发编程实践java 并发编程实践java 并发编程实践java 并发编程实践

    java并发编程内部分享PPT

    java并发编程内部分享PPT

    java并发编程与实践

    java并发编程与实践是java高并发的分析文档,分析并介绍了高并发的解决方案。

    Java 并发编程实战.pdf

    《java并发编程实战》是java并发的圣经。亲自整理目录结构,层级分明(福昕阅读器整理)。高清。

    java并发编程实践(第一版)

    java并发编程实践java并发编程实践java并发编程实践java并发编程实践

    java 并发编程的艺术pdf清晰完整版 源码

    java 并发编程的艺术pdf清晰完整版 源码

    Java并发.pdf

    Java并发

Global site tag (gtag.js) - Google Analytics