Java多线程
文章平均质量分 96
Java多线程系列文章
奔奔尚
spawpaw@hotmail.com
展开
-
Java多线程:锁的底层实现
最近准备招聘,在网上搜集了很多关于JVM获取的锁流程的文章,基本上所有关于偏向锁获取的部分都是错的,所以专门花时间自己看了看代码,整理出来供大家参考。一、 基本概念CAS(compare and swap) 参考资料: https://blog.csdn.net/ls5718/article/details/52563959 缓存一致性协议1. 什么是...原创 2018-07-31 11:39:11 · 4604 阅读 · 2 评论 -
Java多线程:synchronized和volatile
一、什么是锁1.1 为什么需要锁: CPU的内存模型大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而数据首先会被从主存取到CPU的cache中,但是当变量在cache中被改变时,是不会立马写回主存的,那么问题就来了,在多核心CPU中,如果执行下面一段代码:i = i + 1;在多线程环境中就会出问题,如果这里不明白可以参考下图或者百度内存模型,这里不再赘述1...原创 2018-08-01 16:53:13 · 373 阅读 · 0 评论 -
Java多线程:JUC包-锁的封装
之前在Java多线程:synchronized和volatile这篇文章中,讲了Java在语言层面上对对多线程提供的支持。那么,在实际应用中,很多时候仅仅靠这两个关键字是不够的。那么如果我们想进行更骚的操作,就需要使用 java.util.concurrent 包下的工具类了。这个包的结构如下所示:- java.util - atomic //原子操作 - locks /...原创 2018-08-01 19:21:27 · 591 阅读 · 0 评论 -
Java多线程:Thread的使用,以及wait(),notify(),notifyAll()
本文章是Java多线程系列的一篇文章,其他文章: Java多线程:锁的底层实现 Java多线程:synchronized和volatile Java多线程:JUC包-锁的封装 Java多线程:Thread的使用,以及wait(),notify(),notifyAll() Java多线程:线程池一、Thread的状态在Thread类的1750行左右定...原创 2018-08-12 21:00:19 · 926 阅读 · 0 评论 -
Java多线程:线程池
一、为什么使用线程池最基本的开启一个异步任务的方法就是直接像下面这样new一个Threadnew Thread(new Runnable() { @Override public void run() { // TODO } }).start();但是这样做有很多弊端:每次new Thread新建对象性能差。 如果并发的线程数量很多,并且每个线...原创 2018-08-05 09:15:32 · 303 阅读 · 0 评论