随笔分类 -  java-concurrency

重排序
摘要:1.Java平台的编译器: Java平台有两种编译器:javac(静态编译器)和JIT(即时编译器)。 javac 将源代码文件编译成字节码文件,在代码编译阶段介入 JIT 将字节码动态编译为Java虚拟机宿主机的机器码,在Java程序运行过程中介入 zzz 阅读全文

posted @ 2020-02-14 23:46 shammgod_code 阅读(166) 评论(0) 推荐(0)

线程的生命周期状态
摘要:Thread.State的值是一个枚举值: NEW: RUNNABLE: BLOCKED: WAITING: TIMED_WAITING: TERMINATED: 阅读全文

posted @ 2020-02-02 23:13 shammgod_code 阅读(122) 评论(0) 推荐(0)

并发的有序性
摘要:zz 阅读全文

posted @ 2020-01-09 19:22 shammgod_code 阅读(196) 评论(0) 推荐(0)

并发的可见性
摘要:多线程环境下,一个线程对某个共享变量进行更新之后,后续访问该变量的线程可能无法立刻读取到这个更新的结果,甚至永远也无法读取到这个更新的结果,这就是线程安全问题的另外一个表现形式:可见性 多线程程序在可见性方面存在问题意味着某些线程读取到了旧数据,而这可能导致程序出现我们所不期望的结果。 阅读全文

posted @ 2020-01-03 02:46 shammgod_code 阅读(246) 评论(0) 推荐(0)

并发的原子性
摘要:对于涉及共享变量访问的操作,若该操作从其执行线程以外的任意线程来看是不可分割的,那么该操作就具有原子性。原子操作是多线程环境下的一个概念,它是针对访问共享变量的操作而言的。原子操作的“不可分割”包括以下两层含义: 读写某个共享变量的操作从其执行线程以外的任何线程来看,该操作要么已经执行结束要么尚未发 阅读全文

posted @ 2020-01-03 02:05 shammgod_code 阅读(249) 评论(0) 推荐(0)

Java内存模型
摘要:Java虚拟机规范试图定义一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。在JDK1.5发布后,Java的内存模型已经成熟和完善起来了。 1. 主内存与工作内存: Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟 阅读全文

posted @ 2019-12-27 01:21 shammgod_code 阅读(241) 评论(0) 推荐(0)

缓存一致性协议MESI
摘要:1. 缓存一致性协议的由来: 计算机的存储设备速度与cpu的运算速度之间是数量级的差距,现代计算机不得不加入一层读写速度尽可能接近cpu运算速度的高速缓存来作为内存和cpu之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样cpu就无须等待缓慢的 阅读全文

posted @ 2019-12-27 01:16 shammgod_code 阅读(414) 评论(0) 推荐(0)

东西有点乱
摘要:Java中主要同步机制是关键字synchronized,它提供了一种独占的加锁方式,但同步这个术语还包括volatile类型的变量,显式锁和原子变量。 如果多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误。有三种方式可以修复这个问题: 在线程安全类中封装了必要的同步机制,因 阅读全文

posted @ 2019-05-27 15:35 shammgod_code 阅读(185) 评论(0) 推荐(0)

CountDownLatch
摘要:CountDownLatch是一个非常实用的多线程控制工具类,通常用来控制线程等待,它可以让某一个线程等待直到倒计时结束,再开始执行。 阅读全文

posted @ 2019-02-27 02:29 shammgod_code 阅读(104) 评论(0) 推荐(0)

CompletableFuture
摘要:zz 阅读全文

posted @ 2019-02-24 18:46 shammgod_code 阅读(86) 评论(0) 推荐(0)

Future<V>
摘要:JDK5提供了Future接口来代表Callable接口里call()方法的返回值,并为Future接口提供了一个FutureTask实现类,该实现类实现了Future接口,并实现了Runnable接口 可以作为Thread类的target。 阅读全文

posted @ 2019-02-24 18:45 shammgod_code 阅读(117) 评论(0) 推荐(0)

同步异步阻塞非阻塞及并发级别
摘要:同步和异步通常用来形容一次方法调用。同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一次消息传递,一旦开始,方法调用就会立即返回,调用者可以继续后续的操作。如果异步调用需要返回结果,那么当这个异步调用真实完成时,则会通知调用者。 阻塞和非阻塞通常用来形容多线程 阅读全文

posted @ 2019-02-18 01:34 shammgod_code 阅读(127) 评论(0) 推荐(0)

volatile
摘要:zz 阅读全文

posted @ 2019-02-18 00:57 shammgod_code 阅读(86) 评论(0) 推荐(0)

HashMap和ConcurrentHashMap
摘要:注:本文出自“石杉的架构笔记”微信公众号。 阅读全文

posted @ 2019-02-17 04:13 shammgod_code 阅读(104) 评论(0) 推荐(0)

Java中的指针---Unsafe应用解析
摘要:注:本文出自"美团技术团队"微信公众号 Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言拥 阅读全文

posted @ 2019-02-17 04:10 shammgod_code 阅读(493) 评论(0) 推荐(1)

导航