随笔分类 -  Java内存模型

摘要:线程安全程度 从java语言中各种操作共享数据来分,按照线程安全强度来分: 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 不可变 final带来的可见性使得一个不可变变量创建出来(没有使用this引用逃逸出来),永远不会在多个线程中看 阅读全文
posted @ 2018-08-01 15:53 v-imok 阅读(2925) 评论(0) 推荐(0)
摘要:什么是重排序?重排序是指令的重排序。 为了提高性能,编译器和处理器常常会对指令做重排序,重排序就会导致多线程执行的时候有数据不一致问题,导致程序结果不是理想结果。 重排序分为三类: 编译器重排序:不改变单线程程序语义前提下,重新安排执行顺序 指令级并行重排序:指令并行技术可以将多条指令重叠执行,如果 阅读全文
posted @ 2018-08-01 15:33 v-imok 阅读(2119) 评论(0) 推荐(0)
摘要:并发编程模型 并发编程中需要处理的两个关键性的问题是:线程之间的通信以及线程之间的同步。在命令式编程中,有两种通信方式:共享内存和消息传递 共享内存:读写内存中公共状态来隐式实现线程之间的通信,共享内存通信的同步机制是显示进行的,程序开发人员需要在某个代码或者某个方法显示的进行互斥执行 消息传递:通 阅读全文
posted @ 2018-08-01 15:13 v-imok 阅读(168) 评论(0) 推荐(0)