随笔分类 -  java多线程学习笔记

java内存模型JMM理解整理
摘要:什么是JMM JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在 阅读全文

posted @ 2018-08-21 10:41 阿姆斯特朗回旋炮 阅读(31885) 评论(6) 推荐(8)

java.util.concurrent中的几种同步工具类
摘要:java.util.concurrent并发包中提供了一系列的的同步工具类,这些基础类不管是否能在项目中使用到,了解一下使用方法和原理对java程序员来说都是有必要的。博主在看《java并发编程实战》这本书中提到了其中几个工具类,本文就对这些类进行简单的描述。 CyclicBarrier(栅栏) 4 阅读全文

posted @ 2018-08-06 10:08 阿姆斯特朗回旋炮 阅读(2484) 评论(0) 推荐(0)

synchronized ReentrantLock 比较分析
摘要:在编写多线程代码的时候,对于不允许并发的代码,很多需要加锁进行处理。在进行加锁处理时候,synchronized作为java的内置锁,同时也是java关键字,最为被人熟知,即使是最初级的java程序员,只要知道java并发处理的,都会知道syschronized。 java5.0之后,java提供了 阅读全文

posted @ 2018-07-18 19:17 阿姆斯特朗回旋炮 阅读(1188) 评论(0) 推荐(1)

ThreadPoolExecutor 学习笔记
摘要:线程池的奥义 在开发程序的过程中,很多时候我们会遇到遇到批量执行任务的场景,当各个具体任务之间互相独立并不依赖其他任务的时候,我们会考虑使用并发的方式,将各个任务分散到不同的线程中进行执行来提高任务的执行效率。 我们会想到为每个任务都分配一个线程,但是这样的做法存在很大的问题: 1、资源消耗:首先当 阅读全文

posted @ 2018-05-15 15:45 阿姆斯特朗回旋炮 阅读(1134) 评论(0) 推荐(0)

ThreadLocal简析
摘要:简介 ThreadLocal在Java多线程开发中常见的一个类,在面试中也经见的问题,比如ThreadLocal的作用是什么,ThreadLocal的实现原理是什么等等。ThreadLocal是java中一个类,用于实现变量在多线程并发环境下维持线程的封闭性(封闭指的是可变对象对于其他线程是不可访问 阅读全文

posted @ 2018-03-21 11:33 阿姆斯特朗回旋炮 阅读(266) 评论(0) 推荐(0)

java volatile关键字解析
摘要:volatile是什么 volatile在java语言中是一个关键字,用于修饰变量。被volatile修饰的变量后,表示这个变量在不同线程中是共享,编译器与运行时都会注意到这个变量是共享的,因此不会对该变量进行重排序。上面这句话可能不好理解,但是存在两个关键,共享和重排序。 变量的共享 先来看一个被 阅读全文

posted @ 2018-03-14 17:56 阿姆斯特朗回旋炮 阅读(3754) 评论(1) 推荐(2)

导航