多執行緒與高併發

2021-10-03 06:45:53 字數 773 閱讀 3968

blocked(鎖池)

timed_waiting(定時等待)

waiting(等待)

terminated

禁止指令重排序》記憶體屏障

在單例雙重檢查中,不加會出現使用半初始化的值,也就是還未附初始值,指令重排導致的(類載入與指令重排的知識)

public class spinlock

while (!flag);

}public void unlock()

}需要了解容器底層的資料結構和演算法

set

queue

queue一般用在多執行緒併發場景下

blockingqueue

synchronousqueue

priorityqueue

concurrentlinkedqueue

delayqueue

treemap

weakhashmap

identityhashmap

concurrenthashmap

concurrentskiplistmap

- fixed

- single

- cached

- scheduledthreadpoolexecutor

- 定時任務執行緒池

- newworkstealingpool

- 適合使用在很耗時的操作

- 底層使用的是forkjoinpool

- 主要用於實現「分而治之」的演算法

多執行緒與高併發 一

建立乙個執行緒的兩種方式 繼承threadclass mythread extends thread newmythread start 實現runnable介面class mythread implements runnable newthread new myrun start 面試時候有時候會...

多執行緒與高併發(一)

官方概念 幾乎所有的作業系統都支援同時執行多個任務,乙個任務通常是乙個程式,每個執行中的程式就是乙個程序。當乙個程式執行時,內部可能包含了多個順序執行流,每個順序執行流就是乙個執行緒。而執行緒呢,乙個程序裡最小的執行單元就叫乙個執行緒。簡單理解就是乙個程式不同的執行路徑。示例 public clas...

多執行緒高併發

修飾靜態方法鎖的是class,非靜態鎖方法鎖的是this,只有拿到這個物件才可以繼續執行 synchronized是可重入鎖 執行緒1的方法1呼叫執行緒2的方法2,判斷是同一把鎖,在同乙個執行緒,可以呼叫。synchronized的鎖公升級 hotsport 鎖公升級過程 保證執行緒可見性 mesi...