多线程知识点
基本概念 |
同步异步(Asyc) 并行(Parallelism)、并发(Concurrency) 阻塞(blocking)/非阻塞 临界区 死锁(DeadLock)、饥饿(Starvation)、活锁(LiveLock) 线程三种基本状态 |
并行定律 |
并发级别 | 阻塞(sync),无饥饿(FIFO),无障碍,无锁,无等待 | |
并发理论(JMM) |
内存模型 线程通信,消息传递 happens-before规则 CAS |
|
并发关键字 |
synchronized(Monitor机制 enter/exit),重入性,原子性 volatile(可见,有序 原子) final:引用类型:只保证引用对象的地址不变,对象的属性是可以改变的 |
缓存一致性 指令重排序 java对象头,Markword |
线程安全 |
什么时线程安全 原子性,有序性,可见性 |
指令重排序 |
Lock 体系 |
AQS ReentrantLock ReentrantReadWriteLock Condition await/signal LockSupport |
独占锁,共享锁 同步器,CLH同步队列,同步状态的获取和释放,线程阻塞和唤醒 锁降级 Condition的await和signal等待/通知机制 |
并发容器 |
CopyOnWriteArrayList ConcurrentLinkedQueue ThreadLocal BlockingQueue Array/Linked |
扩容 Collections.synchronizedMap ThreadLocalMap |
线程池(Executor体系) |
ThreadPoolExecutor ScheduledThreadPoolExecutor Callable 和 FutureTask |
newWorkStealingPool(int parallelism) |
原子操作类 |
AtomicInteger AtomicReference AtomicReferenceArrayFieldUpdater |
|
并发工具类 |
Semaphore:控制并发访问个数,acquire/release CountDownLatch:倒计时器 CyclicBarrier:循环栅栏 Exchanger:数据交换 |
|
Fork/Join | ForkJoinPool:利用Work-Stealing算法,并行处理任务,不保证处理顺序 | |
多线程问题 |
上下文开销 死锁 |
|
并发模型 | Actor | |
生产者-消费者 |
java跳表的并发问题
设计线程池的大小,怎样计算线程池的大小
线程池的核心参数,在java中的实现,以及任务抛弃策略
ConCurrentHashMap的架构和如何保证线程安全
- java多线程知识点汇总(二)多线程实例解析
- 多线程知识点整理
- 多线程知识点整理
- Java多线程面试知识点汇总(超详细总结)
- Java面试知识点1——多线程和并发编程
- 多线程知识点详解
- 黑马程序员,黑马论坛-----多线程知识点总结
- J2SE知识点归纳笔记(五)---Java多线程(一)
- 多线程相关的一些知识点
- 牛客网Java刷题知识点之什么是进程、什么是线程、什么是多线程、多线程的好处和弊端、多线程的创建方式、JVM中的多线程解析、多线程运行图解
- Java多线程知识点总结——进阶篇(十二) 之 Join方法 & 优先级 & yield方法
- 爬虫知识点(多进程,多线程 多协程)
- 多线程知识点整理
- 多线程知识点整理
- Java中多线程并发体系知识点汇总
- 【Java多线程与并发】知识点整理(追加中)
- Linux下多线程的重要知识点
- java多线程细微知识点
- j2se学习中的一些零碎知识点8之多线程
- Java核心知识点学习----多线程中的阻塞队列,ArrayBlockingQueue介绍