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...