1. 程式人生 > >Java並發基礎知識你知道多少?

Java並發基礎知識你知道多少?

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並發基礎知識你知道多少?