java
文章平均质量分 78
幻回答哈迪斯
这个作者很懒,什么都没留下…
展开
-
java之旅
今天开始学习java了,以后每天我都会发布所学的笔记和心得。原创 2015-12-16 11:21:23 · 231 阅读 · 0 评论 -
java之Vertx_1_简介
Vertx的简介 作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs 链接地址:http://blog.csdn.net/chszs/article/details/8949559 打印一下重点 1.Vert.x是一个异步应用程序开发框架,可用于开发异步、可伸缩、高并发的Web应用。 2.可以用JavaScript、C转载 2015-12-16 11:49:28 · 370 阅读 · 0 评论 -
Java之多线程内存可见性_2(synchronized可见性原理)
可见性: 要实现共享变量的可见性,必须保证2点: 1.线程修改后的共享变量值能够及时从工作内存刷新到主内存中。 2.其他线程能够及时把共享变量的最新值从主内存更新到自己的工作内存中。 以下的记录都是来源于慕课网-细说java多线程之内存可见性 Java语言层面你支持的可见性实现方式:(不包含jdk1.5之后的一些高级特性) 1.synchronized 2.volatil翻译 2015-12-17 11:29:45 · 1790 阅读 · 2 评论 -
Java之多线程内存可见性_2(volatile不能保证原子性)
以下内容在慕课网-->细说Java多线程之内存可见性 volatile不能保证原子性 public class VolatileDemo{ private volatile int number = 0; public int getNumber(){ return this.number; } public void increase(){ this.number翻译 2015-12-17 14:16:58 · 416 阅读 · 0 评论 -
Java之多线程内存可见性_1
一下的记录都是来源于慕课网-细说java多线程之内存可见性 记录总结: 可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到。 共享变量:如果一个变量在多个贤臣的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。 java内存模型(JMM) java内存模型(Java Memory Model)描述了java程序中各种变量(线程共享变量)的翻译 2015-12-17 11:05:40 · 324 阅读 · 0 评论 -
Java之多线程内存可见性_2(volatile实现可见性)
volatile实现可见性 volatile关键字: 1.能够保证volatile变量的可见性 2.不能保证volatile变量符合操作的原子性 volatile如何实现内存可见性:深入来说:通过加入内存屏障和禁止重排序优化来实现的。 1.对volatile变量执行写操作时,会在写操作后加入一条store屏障指令(cpu写缓存机的缓存强制刷新到主内存中) 2.对volatile变量翻译 2015-12-17 12:55:46 · 950 阅读 · 0 评论 -
Java之多线程内存可见性_2(synchronized实现可见性代码)
上面的代码结果可能是6,0 分析: 1.执行 顺序 1.1->2.1->1.2->2.2 result = 3 2.执行 顺序 1.2->2.1->.2.2->1.1 result = 0 3.可以自己分析其他情况 4.特殊:2.1和2.2是可以重排序的(2.1和2.2没有数据依赖关系,只有数据依赖关系才会禁止重排序)翻译 2015-12-17 12:09:27 · 271 阅读 · 0 评论 -
Java之多线程内存可见性_3(synchronized和volatile比较)
synchronized和volatile比较 1.volatile不需要加锁,比synchronized更轻量级,不会阻塞线程 2.从内存可见性角度,volatile读相当于加锁,volatile写相当于解锁 3.synchronized技能保证可见性,又能保证原子性,而volatile只能保证可见性,无法保证原子性 注:volatile比synchronized执行效率更高,能保证翻译 2015-12-17 14:30:27 · 302 阅读 · 0 评论