- 博客(6)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 Java并发编程-CopyOnWriteArrayList原理
1.CopyOnWriteArrayList是一个ArrayList线程安全的变体,它的所有改变底层数组的方法如(add,set等)通过复制底层数组来实现。这原本很消耗性能,但当遍历操作远远多于修改操作时,可能会比其他方法更高效,当你不想同步遍历操作时这种实现可能会有用。你需要排除并发线程之间的冲突。快照形式的迭代方法在得迭代器创建时使用一个数组状态的引用。这个数组在迭代器的生命周期内绝不会改变,...
2018-08-21 15:51:47 168
原创 Java并发编程-ForkJoin框架
1.ForkJoin框架是一个为了发挥多核CPU优势,充分利用CPU资源的一个任务并行执行框架,它可以将一个大任务拆分成若干个子任务,然后再由子任务合并最终得到执行结果。2.示例代码public class Demo extends RecursiveTask<Integer> { private int begin; private int end; ...
2018-08-07 09:02:10 154
原创 Java虚拟机-常见的内存语义的分析
1.锁的释放与获取所建立的happens-before关系:public class Demo { private int value; public synchronized void a() { value++; //1 } public synchronized void b() { int a = value; /...
2018-08-06 19:44:34 180
原创 Java虚拟机-指令重排序
1.什么是指令重排序 编译器和处理器为了代码的执行效率会对指令进行重新排序,我们称之为重排序。public class Demo { private int a; private int b; private int c; public void a() { a = 1; //1 b = 2; //2 c ...
2018-08-06 19:14:55 618 1
原创 Java虚拟机-happens-before规则
1.happens-before规则 Happen-before是用来指定两个操作之间的执行顺序,提供跨线程的内存可见性。在Java内存模型中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必然存在happen-before关系。Happen-before规则如下:程序顺序规则、监视锁规则、volatile变量规则、传递性、Start规则、Join规则。2.程序...
2018-08-06 19:06:33 190
原创 Java并发编程-Future提前完成任务
1.Jdk自带Future模式类图: 从类图中可以看出,RunnableFuture接口继承了Future和Runnable接口,而FutureTask类实现了RunnableFuture接口。所以FutureTask具有Future和Runnable的所有特性。Future还关联一个Callable的实例,来定义具体的计算过程,返回计算结果。 一个Futu...
2018-08-05 09:39:42 333
windows 7 中安装DockerToolBox总是报错
2017-03-26
spring-boot中配置https,浏览器中访问不了
2017-03-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人