|
1 | 1 | [TOC] |
2 | 2 |
|
| 3 | +<!-- TOC --> |
| 4 | + |
| 5 | +- [并发编程](#并发编程) |
| 6 | + - [1. 线程状态转换](#1-线程状态转换) |
| 7 | + - [新建(New)](#新建new) |
| 8 | + - [可运行(Runnable)](#可运行runnable) |
| 9 | + - [阻塞(Blocking)](#阻塞blocking) |
| 10 | + - [无限期等待(Waiting)](#无限期等待waiting) |
| 11 | + - [限期等待(Timed Waiting)](#限期等待timed-waiting) |
| 12 | + - [死亡(Terminated)](#死亡terminated) |
| 13 | + - [2. Java实现多线程的方式及三种方式的区别【阿里面经Onenote】](#2-java实现多线程的方式及三种方式的区别阿里面经onenote) |
| 14 | + - [实现 Runnable 接口](#实现-runnable-接口) |
| 15 | + - [实现 Callable 接口](#实现-callable-接口) |
| 16 | + - [继承 Thread 类](#继承-thread-类) |
| 17 | + - [实现接口 VS 继承 Thread](#实现接口-vs-继承-thread) |
| 18 | + - [3. 基础线程机制:什么是守护线程、等待线程、礼让线程、线程阻塞?](#3-基础线程机制什么是守护线程等待线程礼让线程线程阻塞) |
| 19 | + - [Daemon(守护线程)](#daemon守护线程) |
| 20 | + - [Executor](#executor) |
| 21 | + - [sleep()](#sleep) |
| 22 | + - [yield()](#yield) |
| 23 | + - [线程阻塞](#线程阻塞) |
| 24 | + - [4. 线程间的协作(信息交互)【阿里面经Onenote】](#4-线程间的协作信息交互阿里面经onenote) |
| 25 | + - [join()](#join) |
| 26 | + - [wait() notify() notifyAll()](#wait-notify-notifyall) |
| 27 | + - [await() signal() signalAll()](#await-signal-signalall) |
| 28 | + - [sleep和wait分别是那个类的方法,有什么区别【阿里面经Onenote】](#sleep和wait分别是那个类的方法有什么区别阿里面经onenote) |
| 29 | + - [5. 互斥同步](#5-互斥同步) |
| 30 | + - [synchronized](#synchronized) |
| 31 | + - [ReentrantLock](#reentrantlock) |
| 32 | + - [synchronized 和 ReentrantLock 比较](#synchronized-和-reentrantlock-比较) |
| 33 | + - [synchronized与lock的区别,使用场景。看过synchronized的源码没?【阿里面经Onenote】](#synchronized与lock的区别使用场景看过synchronized的源码没阿里面经onenote) |
| 34 | + - [什么是乐观锁和悲观锁](#什么是乐观锁和悲观锁) |
| 35 | + - [synchronized底层如何实现的?用在代码块和方法上有什么区别?](#synchronized底层如何实现的用在代码块和方法上有什么区别) |
| 36 | + - [6. Java 内存模型(JMM)](#6-java-内存模型jmm) |
| 37 | + - [主内存与工作内存](#主内存与工作内存) |
| 38 | + - [内存间交互操作](#内存间交互操作) |
| 39 | + - [内存模型三大特性](#内存模型三大特性) |
| 40 | + - [volatile 与synchronized 的区别](#volatile-与synchronized-的区别) |
| 41 | + - [7. 什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法?线程池创建的方式?【阿里面经Onenote】](#7-什么是线程池如果让你设计一个动态大小的线程池如何设计应该有哪些方法线程池创建的方式阿里面经onenote) |
| 42 | + - [8. 什么是并发和并行](#8-什么是并发和并行) |
| 43 | + - [9. 什么是线程安全【阿里面经Onenote】](#9-什么是线程安全阿里面经onenote) |
| 44 | + - [非线程安全!=不安全?](#非线程安全不安全) |
| 45 | + - [线程安全十万个为什么?](#线程安全十万个为什么) |
| 46 | + - [10. 什么是死锁?死锁的四个必要条件?](#10-什么是死锁死锁的四个必要条件) |
| 47 | + - [什么是死锁](#什么是死锁) |
| 48 | + - [死锁的四个必要条件](#死锁的四个必要条件) |
| 49 | + - [处理死锁的策略](#处理死锁的策略) |
| 50 | + - [死锁预防](#死锁预防) |
| 51 | + - [死锁避免](#死锁避免) |
| 52 | + - [11. volatile 关键字的如何保证内存可见性【阿里面经Onenote】](#11-volatile-关键字的如何保证内存可见性阿里面经onenote) |
| 53 | + - [12. 什么是线程?线程和进程有什么区别?为什么要使用多线程【阿里面经Onenote】](#12-什么是线程线程和进程有什么区别为什么要使用多线程阿里面经onenote) |
| 54 | + - [13. 多线程共用一个数据变量需要注意什么?【阿里面经Onenote】](#13-多线程共用一个数据变量需要注意什么阿里面经onenote) |
| 55 | + - [14. Java是否有内存泄露和内存溢出【阿里面经Onenote】](#14-java是否有内存泄露和内存溢出阿里面经onenote) |
| 56 | + - [](#) |
| 57 | + - [15. 线程间通信和进程间通信?](#15-线程间通信和进程间通信) |
| 58 | + - [进程间通信](#进程间通信) |
| 59 | + - [进程间通信](#进程间通信-1) |
| 60 | + - [16. 什么是同步和异步,阻塞和非阻塞?](#16-什么是同步和异步阻塞和非阻塞) |
| 61 | + - [同步](#同步) |
| 62 | + - [异步](#异步) |
| 63 | + - [阻塞](#阻塞) |
| 64 | + - [非阻塞](#非阻塞) |
| 65 | + - [17. 并发包(待完善)](#17-并发包待完善) |
| 66 | +- [附录:参考资料](#附录参考资料) |
| 67 | + |
| 68 | +<!-- /TOC --> |
| 69 | + |
3 | 70 | ## 并发编程 |
4 | 71 |
|
5 | 72 | ### 1. 线程状态转换 |
|
0 commit comments