好程式設計師Java培訓分享Java多執行緒
好程式設計師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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java培訓分享Java多執行緒併發程式設計師Java執行緒
- 好程式設計師Java培訓分享Java多執行緒常見面試問題程式設計師Java執行緒面試
- 好程式設計師Java培訓分享四種常用執行緒池介紹程式設計師Java執行緒
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 黑馬程式設計師Java培訓和Android培訓:多執行緒程式設計師JavaAndroid執行緒
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java教程分享Java多執行緒常見面試題程式設計師Java執行緒面試題
- 好程式設計師Java培訓告訴你Java-執行緒怎麼來的?程式設計師Java執行緒
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師Java培訓分享Java初學者必讀程式設計師Java
- 好程式設計師Java培訓分享Java包是什麼?程式設計師Java
- 好程式設計師Java培訓分享如何快速入門Java程式設計師Java
- 好程式設計師Java培訓分享maven-概述程式設計師JavaMaven
- 好程式設計師Java培訓分享如何快速入門Java程式設計程式設計師Java
- 好程式設計師Java學習路線分享多執行緒概念程式設計師Java執行緒
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java
- 好程式設計師Java培訓分享Java EE與Java的區別程式設計師Java
- 好程式設計師Java培訓分享學Java程式設計要注意什麼程式設計師Java
- 好程式設計師Java培訓分享Java面試題集合篇一程式設計師Java面試題
- 好程式設計師Java培訓分享Java面試題集合篇二程式設計師Java面試題
- 好程式設計師Java培訓分享Java和HTML的區別?程式設計師JavaHTML
- 好程式設計師Java培訓分享面試Java要注意什麼程式設計師Java面試
- 好程式設計師Java培訓分享Java物件導向概念解析程式設計師Java物件
- 好程式設計師Java培訓分享面試Java的注意事項程式設計師Java面試
- 好程式設計師Java培訓分享Java中級面試題合集程式設計師Java面試題
- 好程式設計師Java培訓分享BigDecimal的用法程式設計師JavaDecimal
- 好程式設計師Java培訓分享SpringBoot -YAML程式設計師JavaSpring BootYAML
- 好程式設計師Java培訓分享For迴圈詳解程式設計師Java
- 好程式設計師Java培訓分享Mybatis面試題集合程式設計師JavaMyBatis面試題
- 好程式設計師Java培訓分享本地快取如何設計程式設計師Java快取
- 好程式設計師Java培訓分享Java面試題之Java集合篇三程式設計師Java面試題
- 好程式設計師Java培訓分享Java基礎知識總結程式設計師Java
- 好程式設計師Java培訓分享Java效能常見命令有哪些程式設計師Java
- 好程式設計師Java培訓分享學Java需要什麼基礎?程式設計師Java
- 好程式設計師Java培訓分享學習Java需要哪些基礎程式設計師Java
- 好程式設計師Java培訓分享Java讀寫Properties配置檔案程式設計師Java
- 好程式設計師Java培訓分享Java集合的兩種排序方法程式設計師Java排序