Java虚拟机并发编
xck503c
这个作者很懒,什么都没留下…
展开
-
共享可变性设计中存在风险以及解决方法(四)
本篇是《Java虚拟机并发编程》第五章的阅读笔记在(三)中,我们在代码里没有使用任何显示的同步操作,直接作用在可变变量上,当然是因为在程序中只有一个可变字段。如果程序中不止一个与可变状态相关或依赖的变量,那么我们就无可避免地要使用显示的同步操作。到目前为止重构都达到了预想的效果,但我们还要想更高要求的目标迈进: 追踪并记录电源的使用情况。即每次电源电量消耗完毕的时候,我们度需要把电源的使用次数进行累原创 2016-09-05 17:09:24 · 240 阅读 · 0 评论 -
共享可变性设计中存在风险以及解决方法(五)
本篇是《Java虚拟机并发编程》第六章的阅读笔记在(四)中,因为程序中不止一个与可变状态相关或依赖的变量,所以我们使用显示锁的来进行同步操作。虽然是用了同步锁成功执行了代码,但同时也会产生许多的问题,因为同步本身就有缺陷。例如可能会产生死锁,活锁;可能会因为是人工加锁,所以会导致错误的概率增加,你需要一个个确认是否每个地方都做了适当的同步,开发效率低,等等。这里我们通过使用软件事务内存STM模型来使原创 2016-10-21 21:38:40 · 270 阅读 · 0 评论 -
共享可变性设计中存在风险以及解决方法(二)
本篇是《Java虚拟机并发编程》第五章的阅读笔记接着(一)中提出的几个问题,对代码进行重构(一)中最终重构的代码是package com.fixingconstructor;public class EnergySource { private final long MAXLEVEL = 100; private long level = MAXLEVEL; private原创 2016-09-04 16:57:56 · 197 阅读 · 0 评论 -
共享可变性设计中存在风险以及解决方法(三)
本篇是《Java虚拟机并发编程》第五章的阅读笔记本篇解决的是可见性的问题,在(一)(二)的基础上对代码进行重构package com.periodictask;import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.co原创 2016-09-04 20:16:08 · 240 阅读 · 0 评论 -
共享可变性设计中存在风险以及解决方法(一)
本篇是《Java虚拟机并发编程》第五章的阅读笔记 首先看代码 这是一段控制一个高档电源的代码,改代码允许用户使用电池里的能量,并定期对电源进行自动充电 package com.originalcode; //Bad code public class EnergySource { private final long MAXLEVEL = 100; private lo...原创 2016-09-04 13:58:38 · 330 阅读 · 0 评论