![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【内功要深厚】Java高并发基础
1. JUC包使用及原理
2. 各种锁的原理和应用
3. 线程底层知识总结
ImportNewXXT0101
天道不一定酬所有勤,但天道只酬勤
展开
-
Java线程池的分析和使用
http://ifeve.com/java-threadpool/1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优...转载 2018-03-29 10:52:29 · 158 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 01】- 线程池架构
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池示例转载请注明出处:http://www.cnblogs.com/skywang转载 2018-01-27 13:11:18 · 205 阅读 · 0 评论 -
Java多线程系列--【JUC集合10】- ConcurrentLinkedQueue
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html 概要本章对Java.util.concurrent包中的ConcurrentHashMap类进行详细的介绍。内容包括:ConcurrentLinkedQueue介绍ConcurrentLinkedQueue原理和数据结构Conc转载 2018-01-27 13:09:05 · 2353 阅读 · 0 评论 -
Java多线程系列--【JUC集合09】- LinkedBlockingDeque
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要本章介绍JUC包中的LinkedBlockingDeque。内容包括:LinkedBlockingDeque介绍LinkedBlockingDeque原理和数据结构LinkedBlockingDeque函数列表Linked转载 2018-01-27 12:58:37 · 721 阅读 · 0 评论 -
Java多线程系列--【JUC集合08】- LinkedBlockingQueue
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要本章介绍JUC包中的LinkedBlockingQueue。内容包括:LinkedBlockingQueue介绍LinkedBlockingQueue原理和数据结构LinkedBlockingQueue函数列表Linked转载 2018-01-27 12:49:50 · 2094 阅读 · 2 评论 -
Java多线程系列--【JUC集合07】- ArrayBlockingQueue
参考:http://www.cnblogs.com/skywang12345/p/3498652.html概要本章对Java.util.concurrent包中的ArrayBlockingQueue类进行详细的介绍。内容包括:ArrayBlockingQueue介绍ArrayBlockingQueue原理和数据结构ArrayBlockingQueue函数列表转载 2018-01-27 12:47:28 · 2275 阅读 · 0 评论 -
Java多线程系列--【JUC集合06】- ConcurrentSkipListSet
参考:http://www.cnblogs.com/skywang12345/p/3498634.html概要本章对Java.util.concurrent包中的ConcurrentSkipListSet类进行详细的介绍。内容包括:ConcurrentSkipListSet介绍ConcurrentSkipListSet原理和数据结构ConcurrentSkipL转载 2018-01-25 09:26:36 · 387 阅读 · 0 评论 -
Java多线程系列--【JUC集合05】- ConcurrentSkipListMap
参考:http://www.cnblogs.com/skywang12345/p/3498556.html概要本章对Java.util.concurrent包中的ConcurrentSkipListMap类进行详细的介绍。内容包括:ConcurrentSkipListMap介绍ConcurrentSkipListMap原理和数据结构ConcurrentSkipL转载 2018-01-25 09:24:38 · 1654 阅读 · 0 评论 -
Java多线程系列--【JUC集合04】- ConcurrentHashMap
参考:http://www.cnblogs.com/skywang12345/p/3498537.html概要本章是JUC系列的ConcurrentHashMap篇。内容包括:ConcurrentHashMap介绍ConcurrentHashMap原理和数据结构ConcurrentHashMap函数列表ConcurrentHashMap源码分析(JD转载 2018-01-25 09:21:41 · 2352 阅读 · 0 评论 -
Java多线程系列--【JUC集合03】- CopyOnWriteArraySet
参考:http://www.cnblogs.com/skywang12345/p/3498497.html概要本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArraySet。内容包括:CopyOnWri转载 2018-01-25 08:59:22 · 232 阅读 · 0 评论 -
Java多线程系列--【JUC集合02】- CopyOnWriteArrayList
参考:http://www.cnblogs.com/skywang12345/p/3498483.html概要本章是"JUC系列"的CopyOnWriteArrayList篇。接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArrayList。内容包括:CopyO转载 2018-01-25 08:57:18 · 8743 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 02】- 线程池原理(一)
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理。内容包括转载 2018-01-27 13:12:20 · 212 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 02】- 线程池原理(一)
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括:线程池示例参考代码(基于JDK1.7.0_40)线程池源码分析转载 2018-01-27 13:14:35 · 2288 阅读 · 0 评论 -
java创建线程的三种方式及其对比
https://www.cnblogs.com/songshu120/p/7966314.html一、Java中创建线程主要有三种方式:1、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该...转载 2018-03-29 10:11:39 · 157 阅读 · 0 评论 -
全面理解Java内存模型
转自:https://blog.csdn.net/suifeng3051/article/details/52611310Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模...转载 2018-04-01 13:30:39 · 213 阅读 · 0 评论 -
深入剖析ThreadLocal
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类 三.ThreadLocal的应...转载 2018-03-19 00:16:55 · 159 阅读 · 0 评论 -
Lock锁和Condition条件
浅谈Synchronized: synchronized是Java的一个关键字,也就是Java语言内置的特性,如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,执行代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而获取锁的线程释放锁会有三种情况: 1).获取锁的线程执行完该代码块,然后线程释放对锁的占有; 2).线程执行发生异常,此时JVM会让线程自动释放锁...转载 2018-03-17 19:21:34 · 2692 阅读 · 0 评论 -
volatile关键字解析
转载自:http://www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由...转载 2018-03-16 14:02:55 · 206 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 06】- Callable和Future
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要本章介绍线程池中的Callable和Future。Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/转载 2018-01-28 09:38:33 · 151 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 05】- 线程池原理(四)
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要本章介绍线程池的拒绝策略。内容包括:拒绝策略介绍拒绝策略对比和示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3512947.html 拒绝策略介绍线转载 2018-01-27 13:27:35 · 171 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 04】- 线程池原理(三)
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态转载 2018-01-27 13:26:10 · 159 阅读 · 0 评论 -
Java多线程系列--【JUC线程池 03】- 线程池原理(二)
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html概要在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括:线程池示例参考代码(基于JDK1.7.0_40)线程池源码分析转载 2018-01-27 13:23:24 · 984 阅读 · 0 评论 -
Java多线程系列--【JUC集合01】- 框架
参考:http://www.cnblogs.com/skywang12345/p/3498454.html概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类转载请注明出处:http:/转载 2018-01-25 08:54:20 · 227 阅读 · 0 评论 -
Java多线程系列--【JUC锁11】- Semaphore信号量的原理和示例
参考:http://www.cnblogs.com/skywang12345/p/3534050.html概要本章,我们对JUC包中的信号量Semaphore进行学习。内容包括:Semaphore简介Semaphore数据结构Semaphore源码分析(基于JDK1.7.0_40)Semaphore示例转载请注明出处:http://www.cnblo转载 2018-01-25 08:50:11 · 632 阅读 · 0 评论 -
Java多线程系列--【JUC锁10】- CyclicBarrier原理和示例
参考:http://www.cnblogs.com/skywang12345/p/3533995.html 概要本章介绍JUC包中的CyclicBarrier锁。内容包括:CyclicBarrier简介CyclicBarrier数据结构CyclicBarrier源码分析(基于JDK1.7.0_40)CyclicBarrier示例转载请注明出处:h转载 2018-01-25 08:41:15 · 561 阅读 · 0 评论 -
Java多线程系列--【基础篇07】- 线程休眠
1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较转载 2017-12-16 16:28:22 · 222 阅读 · 0 评论 -
Java多线程系列--【基础篇06】- 线程让步
1. yield()介绍2. yield()示例3. yield() 与 wait()的比较转载 2017-12-16 15:47:40 · 231 阅读 · 0 评论 -
Java多线程系列--【JUC原子类04】- AtomicLongFieldUpdater原子类
AtomicLongFieldUpdater介绍和函数列表AtomicLongFieldUpdater示例AtomicLongFieldUpdater源码分析(基于JDK1.7.0_40)转载 2017-12-24 08:54:55 · 189 阅读 · 0 评论 -
Java多线程系列--【JUC原子类03】- AtomicReference原子类
AtomicReference介绍和函数列表AtomicReference源码分析(基于JDK1.7.0_40)AtomicReference示例转载 2017-12-24 08:45:58 · 153 阅读 · 0 评论 -
Java多线程系列--【JUC原子类02】- AtomicLongArray原子类
AtomicLongArray介绍和函数列表AtomicLongArray源码分析(基于JDK1.7.0_40)AtomicLongArray示例转载 2017-12-24 08:41:48 · 181 阅读 · 0 评论 -
Java多线程系列--【JUC原子类01】- AtomicLong原子类
AtomicLong介绍和函数列表AtomicLong源码分析(基于JDK1.7.0_40)AtomicLong示例转载 2017-12-24 08:28:35 · 203 阅读 · 0 评论 -
Java多线程系列--【基础篇05】- 线程等待与唤醒
1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long timeout)和notify()4. wait() 和 notifyAll()5. 为什么notify(), wait()等函数定义在Object中,而不是Thread中转载 2017-12-14 16:10:55 · 180 阅读 · 0 评论 -
Java多线程系列--【基础篇02】- 常用的实现多线程的两种方式
注:转载自 http://www.cnblogs.com/skywang12345/p/java_threads_category.html本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable。之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和R转载 2017-11-23 16:55:23 · 175 阅读 · 0 评论 -
Java多线程系列--【基础篇03】- Thread中start()和run()的区别
注:转载自 http://www.cnblogs.com/skywang12345/p/java_threads_category.html start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不能被重复调用。run() : run()就和普通的成员方法一样,可以被重复调用。单独调转载 2017-11-23 19:23:45 · 207 阅读 · 0 评论 -
Java多线程系列--【基础篇01】- 基本概念
注:转载自http://www.cnblogs.com/skywang12345/p/java_threads_category.html多线程是Java中不可避免的一个重要主体。从本章开始,我们将展开对多线程的学习。接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), notify()等接口;Thread类中的接口;转载 2017-11-23 16:36:37 · 157 阅读 · 0 评论 -
Java多线程系列--【基础篇08】- join()
1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例转载 2017-12-16 16:43:57 · 174 阅读 · 0 评论 -
Java多线程系列--【基础篇09】- interrupt()和线程终止方式
1. interrupt()说明2. 终止线程的方式 2.1 终止处于“阻塞状态”的线程 2.2 终止处于“运行状态”的线程3. 终止线程的示例4. interrupted() 和 isInterrupted()的区别转载 2017-12-17 13:01:03 · 199 阅读 · 0 评论 -
Java多线程系列--【JUC锁09】-CountDownLatch原理和示例
参考:http://www.cnblogs.com/skywang12345/p/3533887.html概要前面对"独占锁"和"共享锁"有了个大致的了解;本章,我们对CountDownLatch进行学习。和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁"。本章的内容包括:CountDownLatch简介Coun转载 2018-01-24 23:29:12 · 263 阅读 · 0 评论 -
Java多线程系列--【JUC锁08】-共享锁和ReentrantReadWriteLock
参考:http://www.cnblogs.com/skywang12345/p/3505809.html概要Java的JUC(java.util.concurrent)包中的锁包括"独占锁"和"共享锁"。在“Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock ”中,对Java的独占锁进行了说明。本章对Java的“共享锁”进行介绍,JUC中的共享锁有转载 2018-01-24 23:27:36 · 1461 阅读 · 0 评论 -
Java多线程系列--【JUC锁06】-Condition条件
参考:http://www.cnblogs.com/skywang12345/p/3496716.html 概要前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition函数列表Condition示例转载请注明出处:http://www.cnblogs.com/sky转载 2018-01-24 23:22:41 · 118 阅读 · 0 评论