Java並發基礎知識你知道多少?
阿新 • • 發佈:2019-04-05
executor 解析 內存 指令 exec ble lex 狀態 not
並發
- 並發的三個特性是什麽?
- 什麽是指令重排序?
- 單線程的指令重排序靠什麽保證正確的結果?
- 原子性操作有哪些?
- 賦值操作都屬於原子性操作嗎?
- sychronized和lock如何保證可見性?
內存模型
- 什麽是緩存一致性問題?
- 緩存一致性協議原理?
- 線程工作內存與主存同步的時機?
- println()為什麽和volatile,sychronize一樣都可以做到上述同步?
volatile
- 保證了並發的哪個特性?
- 作用?
- 原理?
- 應用場景?
- 變量多個線程讀寫原則是什麽?
鎖
http://ifeve.com/java-synchronized/
- 什麽是CAS?
- 對於同步方法,同步靜態方法,同步對象,鎖的對象分別是什麽?
- jvm角度分析鎖同步的原理。用什麽方法,取得什麽的所有權?
- 鎖的四種狀態或者類型?
- 什麽是自旋和膨脹?
偏向鎖
- 競爭機制?
- 獲得和撤銷流程?
- 使用場景?
輕量級鎖
- 競爭機制?
- 獲得和撤銷流程?
- 使用場景?
線程
Java多線程系列--“基礎篇”01之 基本概念
- 線程的五個狀態調度圖?
- blocked的三種情況?
- run和start區別?
notify, wait, yield, join
java - 線程等待與喚醒
Java - 線程讓步和休眠
Java - 線程Join與interrupt
- wait是使哪個線程等待?
- notify和wait為什麽定義在object中而不是thread中?
- yield讓出的是什麽?
- yield和wait的區別?
- join的作用?
- 為什麽son.join()是讓主線程等待?
interrupt
Java多線程系列--“基礎篇”09之 interrupt()和線程終止方式
- 作用?
- interrupt阻塞狀態線程過程?
- 如何中止while(true)的線程?
- interrupt運行狀態線程過程?
- interrupted()和isinterrupted()區別?
守護線程定義?
Java - 線程優先級和守護線程
線程池 ThreadPoolExecutor
Java - "JUC線程池" ThreadPoolExecutor原理解析
- 類結構?
- worker作用?
- blockingQueue作用?
- mainlock作用?
- corePool和maxPool處理邏輯?
- handler作用?
- 線程池的五個狀態?
- stop和shutdown區別?
線程拒絕策略
http://www.cnblogs.com/skywang12345/p/3512947.html#a21
- abort, discard, discardoldest, callerruns區別
- 適用場景?
callable和future
Java多線程系列--“JUC線程池”06之 Callable和Future
- callable作用與用法?
- future作用與用法?
- callable與runable區別?
- futuretask與他們的關系?
- 他們的源碼實現?
Java並發基礎知識你知道多少?