最近有在回顾这方面的知识,稍微进行一些整理和归纳防止看了就忘记. 会随着进度不断更新内容,比较零散但尽量做的覆盖广一点. 如有错误烦请指正~ java线程状态图 线程活跃性问题 死锁 饥饿 活锁 饥饿原因: 高优先级造成…
标签:JUC
JUC 知识总结
在 ThreadPoolExecutor 里面定义了 4 种 handler 策略,分别是 1. CallerRunsPolicy :这个策略重试添加…
JUC--AQS源码分析(三)阻塞和唤醒线程
1 概述 上一篇文章 JUC–AQS源码分析(二)同步状态的获取与释放,我们学习到了同步状态的获取与释放的源码,并且对线程的阻塞和唤醒有了一个初步的了解,这里我们进行深一步的分析。 2 阻塞 我们知道在获取线…
JUC--Semaphore简介和使用
1 概述 通过查看JDK的API,我们可以发现对Semaphore的定义如下: 信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从…
JAVA多线程提高二:传统线程的互斥与同步&传统线程通信机制
本文主要是回顾线程之间互斥和同步,以及线程之间通信,在最开始没有juc并发包情况下,如何实现的,也就是我们传统的方式如何来实现的,回顾知识是为了后面的提高作准备。 一、线程的互斥 为什么会有线程的互斥?可以想银行取款的问…
详解Java多线程编程中LockSupport类的线程阻塞用法
LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数: [java] view…
Java多线程系列--“JUC线程池”04之 线程池原理(三)
转自:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期。在”Java多线程系列–“基础篇”01之 基本概念”…
Java多线程系列---“JUC原子类”06之 AtomicLongFieldUpdater原子类
转自:http://www.cnblogs.com/skywang12345/p/3514635.html (含部分修改) 概要 AtomicIntegerFieldUpdater, AtomicLongFieldUpd…
12.JUC 锁- CyclicBarrier
基本概念 CyclicBarrier ,也称可重用屏障是一个线程同步工具,用于一组互相等待线程之间的协调,在到达某个临界点之前,这些线程必须互相等待。通俗来讲,表示 n 个线程,大家相互等待,只要有一个没完成,所有人都得…
JUC DelayQueue 分析
基本介绍 DelayQueue,JUC阻塞队列的一种,依赖ReentrantLock(非公平实现)、Condition以及PriorityQueue来实现阻塞等待获取超时元素。队列中的元素需要超时后才能够被取出,若多个线…
JUC线程进阶篇02:volatile关键字与CAS算法
JUC线程进阶篇02:volatile关键字与CAS算法 标签: 多线程 JUC线程进阶篇02:volatile关键字与CAS算法 Volatile变量 什么是Volatile Volatile保证可见性 Volatil…
Java并发多线程:JUC - 线程池
线程池提供了一个线程队列,队列中保存了所有等待状态的线程,避免了创建和销毁的额外开销,提高了响应速度 java.util.concurrent.Executor:负责线程的使用与调度的根接口 …