自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

纯洁的明依

公号:纯洁的明依,喜欢博主的可以关注

  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java 内存模型(三)-从源代码到指令序列的重排序

在执行程序时。为了提高性能,编译器和处理器常常会对指令做重排序。重排序分为3中类型: 1 编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 2 指令级并行的重排序。现代处理器采用了指令集并行技术(ILP) ,来讲多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对机器指令的执行顺序。 3 内存系统的重排序。由于处理器使用缓存和读/写缓冲区。这便得...

2018-02-09 16:40:45 495

原创 java 内存模型的基础(二)

Java 内存模型抽象示意图如下: 如果线程A与线程B之间要通信的话,必须要经历下面2个步骤。 1 线程A把本地内存A中更新过的共享变量刷新到主内存中去。 2 线程B到主内存中去读取线程A之前已经更新过的共享变量。 下面通过示意图来说明这步骤 JMM作用:控制主内存与每个线程的本地内存之间的交互,来为Java程序员提供内存可见性保证。...

2018-02-09 16:24:11 141

原创 java 内存模型的基础

1.1 .1 并发编程模型的两个关键问题 a:线程之间如何通信(交换信息) b :线程之间如何同步 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 同步:是指程序中用户控制不同线程间操作发生相对顺序的机制。在共享内存并发模型里,同步时显示进行的。程序员必须制定某个方法需要在线程之间互斥执行。在消息传递的并发模型里,由于消息的发送必须在消息的接收之前,因此同步时隐式进行的。...

2018-02-08 16:11:07 146

原创 Java中如何实现原子操作?

在Java中,J实现原子操作 可以通过锁和循环CAS的方式来实现原子操作。 1 使用循环CAS操作原子操作 package com.yy; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; /** * Created by wo o

2018-02-06 15:39:07 783

原创 Java并发机制(-synchronized的实现原理与应用)

1 synchronized的实现原理与应用 1.1 偏向锁和轻量级锁以及锁的存储结构和升级过程 1.1.1 实现同步的基础,Java中每一个对象都可以作为锁 a:对于普通同步方法,锁是当前实例对象。 b:对于静态同步 方法,锁是当前类的Class对象。 c:对于同步方法块,锁是synhronized 括号里配置的对象。 1..2 Java对象头:

2018-02-06 13:47:19 213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除