随笔分类 -  Java并发(转载+补充)

摘要:转自:http://www.cnblogs.com/skywang12345/p/3544116.html 概要 本章介绍线程池中的Callable和Future。 Callable 和 Future 简介 示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnbl 阅读全文
posted @ 2018-11-11 10:55 Hermioner 阅读(154) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3512947.html 概要 本章介绍线程池的拒绝策略。内容包括: 拒绝策略介绍 拒绝策略对比和示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3512947.htm 阅读全文
posted @ 2018-11-11 10:55 Hermioner 阅读(159) 评论(0) 推荐(0)
摘要:一. Executor框架 在Java中,使用线程来异步执行任务。Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源。同时,为每一个任务创建一个新线程来执行,这种策略可能会使处于高负荷状态的应用最终崩溃。 Java的线程既是工作 阅读全文
posted @ 2018-11-11 10:54 Hermioner 阅读(198) 评论(0) 推荐(0)
摘要:概要 在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括: 线程池示例 参考代码(基于JDK1.7.0_40) 线程池源码分析 (一) 创建“线程池” (二) 添加任务到“线程池” (三) 关闭 阅读全文
posted @ 2018-11-11 10:54 Hermioner 阅读(927) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程 阅读全文
posted @ 2018-11-11 10:54 Hermioner 阅读(187) 评论(0) 推荐(0)
摘要:ThreadPoolExecutor简介 ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为"存放一定数量线程的一个线程集合。 Executor框架最核心的类是ThreadPoolExecutor,它是线程池的实现类,主要由下列4个组件构成。 ·corePoolSize 阅读全文
posted @ 2018-11-11 10:54 Hermioner 阅读(203) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3496651.html 获取非公平锁(基于JDK1.7.0_40) 非公平锁和公平锁在获取锁的方法上,流程是一样的;它们的区别主要表现在“尝试获取锁的机制不同”。简单点说,“公平锁”在每次尝试获取锁时,都是采用公平策 阅读全文
posted @ 2018-11-10 21:16 Hermioner 阅读(240) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3496609.html 释放公平锁(基于JDK1.7.0_40) 1. unlock() unlock()在ReentrantLock.java中实现的,源码如下: 说明:unlock()是解锁函数,它是通过AQS的 阅读全文
posted @ 2018-11-10 21:11 Hermioner 阅读(169) 评论(0) 推荐(0)
摘要:转自: http://www.cnblogs.com/skywang12345/p/3496147.html(含部分修改) 概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_4 阅读全文
posted @ 2018-11-10 21:06 Hermioner 阅读(623) 评论(0) 推荐(0)
摘要:1. 线程让步: yield() yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行! 阅读全文
posted @ 2018-11-10 16:11 Hermioner 阅读(1390) 评论(2) 推荐(0)
摘要:转自:https://www.cnblogs.com/qingquanzi/p/8228422.html(含部分修改) LockSupport是Java6引入的一个工具类,它简单灵活,应用广泛。LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 阅读全文
posted @ 2018-11-09 09:43 Hermioner 阅读(214) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3496716.html (含部分修改) 概要 前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition函数列表Condit 阅读全文
posted @ 2018-11-08 21:29 Hermioner 阅读(212) 评论(0) 推荐(0)
摘要:一. AQS 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的Reentrant 阅读全文
posted @ 2018-11-08 21:05 Hermioner 阅读(226) 评论(0) 推荐(0)
摘要:本章,我们介绍锁的架构;后面的章节将会对它们逐个进行分析介绍。目录如下: 01. Java多线程系列--“JUC锁”01之 框架 02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock 06. Java多线程系列--“JUC锁”03之 Condition条件 07. Ja 阅读全文
posted @ 2018-11-08 14:06 Hermioner 阅读(194) 评论(0) 推荐(0)
摘要:转自:https://www.cnblogs.com/skywang12345/p/3514593.html(含部分修改) 概要 AtomicInteger, AtomicLong和AtomicBoolean这3个基本类型的原子类的原理和用法相似。本章以AtomicLong对基本类型的原子类进行介绍 阅读全文
posted @ 2018-11-04 19:46 Hermioner 阅读(161) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3514623.html(部分修改) 概要 本章对AtomicReference引用类型的原子类进行介绍。内容包括: AtomicReference介绍和函数列表 AtomicReference源码分析(基于JDK1. 阅读全文
posted @ 2018-11-04 19:46 Hermioner 阅读(150) 评论(0) 推荐(0)
摘要:转自:https://www.cnblogs.com/skywang12345/p/3514604.html(含部分修改) 概要 AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray这3个数组类型的原子类的原理和用法相似。本章以Atomi 阅读全文
posted @ 2018-11-04 19:46 Hermioner 阅读(152) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3514635.html (含部分修改) 概要 AtomicIntegerFieldUpdater, AtomicLongFieldUpdater和AtomicReferenceFieldUpdater这3个修改类的成 阅读全文
posted @ 2018-11-04 19:46 Hermioner 阅读(151) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/ls5718/article/details/52563959 & https://blog.csdn.net/mmoren/article/details/79185862(含部分修改) 在JDK 5之前Java语言是靠synchronized关键 阅读全文
posted @ 2018-11-04 19:45 Hermioner 阅读(234) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/skywang12345/p/3514589.html 根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: Atom 阅读全文
posted @ 2018-11-04 19:45 Hermioner 阅读(136) 评论(0) 推荐(0)