多線程
1. 多線程概念:
線程是指進程中的一個執(zhí)行流程,一個進程中可以運行多個線程。比如java.exe進程中可以運行很多線程。線程總是屬于某個進程,進程中的多個線程共享進程的內(nèi)存。
1)多線程的實現(xiàn)方式和啟動:
2) 多線程依靠什么解決資源競爭
4) 多線程的暫停方式
線程是指進程中的一個執(zhí)行流程,一個進程中可以運行多個線程。比如java.exe進程中可以運行很多線程。線程總是屬于某個進程,進程中的多個線程共享進程的內(nèi)存。
- 多線程的實現(xiàn)方式和啟動
- 多線程是依靠什么方式解決資源競爭
- 多線程的各種狀態(tài)以及優(yōu)先級
- 多線程的暫停方式
1)多線程的實現(xiàn)方式和啟動:
- 繼承Thread和是實現(xiàn)Runnable接口,重寫run方法
- 啟動只有一種方式:通過start方法,虛擬機會調(diào)用run方法
2) 多線程依靠什么解決資源競爭
- 鎖機制:分為對象鎖和類鎖,在多個線程調(diào)用的情況,每個對象鎖都是唯一的,只有獲取了鎖才能調(diào)用synchronized方法
- synchronize同步:分為同步方法和同步方法塊
- 什么時候獲取鎖:每次調(diào)用到synchronize方法,這個時候去獲取鎖資源,如果線程獲取到鎖則別的線程只有等到同步方法介紹后,釋放鎖后,別的線程 才能繼續(xù)使用
- 主要分為:新狀態(tài)(還沒有調(diào)用start方法),可執(zhí)行狀態(tài)(調(diào)用start方法),阻塞狀態(tài),死亡狀態(tài)
4) 多線程的暫停方式
- sleep:睡眠單位為毫秒
- wait,waitAll,notify,notifyAll,wait等待,只有通過wait或者waitAll喚醒
- yield:cpu暫時停用
- join