好程式設計師Java培訓分享Java多執行緒

好程式設計師發表於2020-07-14

   好程式設計師Java 培訓分享 Java 多執行緒 學習 Java 程式設計師多執行緒學習。

  1.1. 多執行緒基礎什麼是執行緒和程式? 執行緒與程式的關係 , 區別及優缺點?

  說說併發與並行的區別?

  為什麼要使用多執行緒呢?

  使用多執行緒可能帶來什麼問題?( 記憶體洩漏、死鎖、執行緒不安全等等 )

  建立執行緒有哪幾種方式?(a. 繼承 Thread ;b. 實現 Runnable 介面 ;c. 使用 Executor 框架 ;d. 使用 FutureTask)

  說說執行緒的生命週期和狀態?

  什麼是上下文切換?

  什麼是執行緒死鎖?如何避免死鎖?

  說說 sleep() 方法和 wait() 方法區別和共同點?

  為什麼我們呼叫 start() 方法時會執行 run() 方法,為什麼我們不能直接呼叫 run() 方法?

  1.2. 多執行緒知識進階 volatile 關鍵字

  Java 記憶體模型 (JMM);

  重排序與 happens-before 原則瞭解嗎?

  volatile 關鍵字的作用 ;

  說說 synchronized 關鍵字和 volatile 關鍵字的區別 ;

  ThreadLocal

  有啥用( 解決了什麼問題 ) ?怎麼用?

  原理了解嗎?

  記憶體洩露問題了解嗎?

  執行緒池

  為什麼要用執行緒池?

  你會使用執行緒池嗎?

  如何建立執行緒池比較好?( 推薦使用 ThreadPoolExecutor 建構函式建立執行緒池 )

  ThreadPoolExecutor 類的重要引數瞭解嗎? ThreadPoolExecutor 飽和策略瞭解嗎?

  執行緒池原理了解嗎?

  幾種常見的執行緒池瞭解嗎?為什麼不推薦使用FixedThreadPool

  如何設定執行緒池的大小?

  AQS

  簡介

  原理

  AQS 常用元件。

  Semaphore( 訊號量 )- 允許多個執行緒同時訪問

  CountDownLatch ( 倒數計時器 )-CountDownLatch 允許 count 個執行緒阻塞在一個地方,直至所有執行緒的任務都執行完畢。

  CyclicBarrier( 迴圈柵欄 )-CyclicBarrier CountDownLatch 非常類似,它也可以實現執行緒間的技術等待,但是它的功能比 CountDownLatch 更加複雜和強大。主要應用場景和 CountDownLatch 類似。

  ReentrantLock ReentrantReadWriteLock

  鎖

  鎖的常見分類

  可重入鎖和非可重入鎖

  公平鎖與非公平鎖

  讀寫鎖和排它鎖

  synchronized 關鍵字

  說一說自己對於 synchronized 關鍵字的瞭解 ;

  說說自己是怎麼使用 synchronized 關鍵字,在專案中用到了嗎 ;

  講一下 synchronized 關鍵字的底層原理 ;

  說說 JDK1.6 之後的 synchronized 關鍵字底層做了哪些最佳化,可以詳細介紹一下這些最佳化嗎 ;

  談談 synchronized ReentrantLock 的區別 ;

  ReentrantLock ReentrantReadWriteLock

  ReadWriteLock

  StampedLock(JDK8)

  Atomic CAS

  CAS:

  介紹

  原理

  Atomic 原子類:

  介紹一下 Atomic 原子類 ;

  JUC 包中的原子類是哪 4 類? ;

  講講 AtomicInteger 的使用 ;

  能不能給我簡單介紹一下 AtomicInteger 類的原理。

  併發容器

  JDK 提供的這些容器大部分在 java.util.concurrent 包中。

  ConcurrentHashMap: 執行緒安全的 HashMap

  CopyOnWriteArrayList: 執行緒安全的 List ,在讀多寫少的場合效能非常好,遠遠好於 Vector.

  ConcurrentLinkedQueue: 高效的併發佇列,使用連結串列實現。可以看做一個執行緒安全的 LinkedList ,這是一個非阻塞佇列。

  BlockingQueue: 這是一個介面, JDK 內部透過連結串列、陣列等方式實現了這個介面。表示阻塞佇列,非常適合用於作為資料共享的通道。

  ConcurrentSkipListMap: 跳錶的實現。這是一個 Map ,使用跳錶的資料結構進行快速查詢。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2704322/,如需轉載,請註明出處,否則將追究法律責任。

相關文章