美文网首页
Java多线程实现基础(二)

Java多线程实现基础(二)

作者: 牛牛_735d | 来源:发表于2019-07-07 19:21 被阅读0次

Java内存模型

基本概念

1. 线程通信
   线程之间以何种方式进行消息传递
   共享内存 & 消息传递
   
2. 线程同步
   程序间用于控制不同线程间操作发生相对顺序的机制
   
   java是共享内存模型】采用的是隐式通信、显式修改
   
   jvm定义了线程和主内存(Main Memory)之间的关系:
   1) 线程之间的共享变量存储在主内存中
   2) 线程私有变量存储在私有本地内存 Local Memory中、
      本地内存是jvm的一个抽象概念、并非真实存在、涵盖缓存、缓冲区、寄存器及其它硬件及编译器优化
   Java同步原语(synchronize volatile  final)

指令重排

1. 编译器重排
   在不改变单线程语义的条件下、编译器可以重排指令的执行顺序
2. 指令重排 
   现代cpu采用了指令级并行技术、可以同时执行多条指令、若无数据依赖、
   处理器可以改变机器指令的执行顺序
3. 内存系统的重排
   由于处理器采用缓存和读写缓冲区、使得加载和存储操作看上去是乱序的、
   可能在乱序执行

jvm 指令执行

未使用同步的程序在jvm中的执行基本无序、
1. jvm不保证单线程内的操作会按照程序代码顺序执行、临界区指令重排
2. jvm不保证所有线程看到的执行顺序一致
3. jvm不保证64位的long、double类型写操作具有原子性

相关文章

  • Java多线程实现基础(二)

    Java内存模型 基本概念 指令重排 jvm 指令执行

  • Java多线程学习(三)——synchronized(上)

    在前两节的《Java多线程学习(一)——多线程基础》和《Java多线程学习(二)——Thread类的方法介绍》中我...

  • JAVA 大数据学习路线

    Java基础 多线程 (多了解java.util.conconrrent包的类) 集合框架 IO 反射(如何实现根...

  • android 多线程 — 线程的面试题和答案

    这里都是我从各个地方找来的资料,鸣谢: Java多线程干货系列—(一)Java多线程基础 JAVA多线程和并发基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • Java多线程目录

    Java多线程目录 Java多线程1 线程基础Java多线程2 多个线程之间共享数据Java多线程3 原子性操作类...

  • Java基础

    Java基础 集合基础 集合框架 多线程基础 多线程框架 反射 代理 集合基础 ArrayList LinkedL...

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

  • Android 面试/进阶知识点梳理

    Java基础 泛型 注解 多线程 JMM 类型信息 ClassLoader 虚拟机实现原理 垃圾回收算法 JDK ...

  • Java多线程知识点

    1.java中实现多线程的几种方式 java中实现多线程的方式主要有两种,第一种是继承Thread类,第二种是实现...

网友评论

      本文标题:Java多线程实现基础(二)

      本文链接:https://www.haomeiwen.com/subject/lgsihctx.html