23

1:多線程(理解)
(1)多線程:一個應用程序有多條執行路徑
進程:正在執行的應用程序
線程:進程的執行單元,執行路徑
單線程:一個應用程序只有一條執行路徑
多線程:一個應用程序有多條執行路徑

多進程的意義?
提高CPU的使用率
多線程的意義?
提高應用程序的使用率
(2)Java程序的運行原理及JVM的啓動是多線程的嗎?
A:Java命令去啓動JVM,JVM會啓動一個進程,該進程會啓動一個主線程。
B:JVM的啓動是多線程的,因爲它最低有兩個線程啓動了,主線程和垃圾回收線程。
(3)多線程的實現方案(自己補齊步驟及代碼 掌握)
A:繼承Thread類
B:實現Runnable接口
(4)線程的調度和優先級問題
A:線程的調度
a:分時調度
b:搶佔式調度 (Java採用的是該調度方式)
B:獲取和設置線程優先級
a:默認是5
b:範圍是1-10
(5)線程的控制(常見方法)
A:休眠線程
B:加入線程
C:禮讓線程
D:後臺線程
E:終止線程(掌握)
(6)線程的生命週期(參照 線程生命週期圖解.bmp)
A:新建
B:就緒
C:運行
D:阻塞
E:死亡
(7)電影院賣票程序的實現
A:繼承Thread類
B:實現Runnable接口
(8)電影院賣票程序出問題
A:爲了更符合真實的場景,加入了休眠100毫秒。
B:賣票問題
a:同票多次
b:負數票
(9)多線程安全問題的原因(也是我們以後判斷一個程序是否有線程安全問題的依據)
A:是否有多線程環境
B:是否有共享數據
C:是否有多條語句操作共享數據
(10)同步解決線程安全問題
A:同步代碼塊
synchronized(對象) {
需要被同步的代碼;
}

這裏的鎖對象可以是任意對象。

B:同步方法
把同步加在方法上。

這裏的鎖對象是this

C:靜態同步方法
把同步加在方法上。

這裏的鎖對象是當前類的字節碼文件對象(反射再講字節碼文件對象)
(11)回顧以前的線程安全的類
A:StringBuffer
B:Vector
C:Hashtable
D:如何把一個線程不安全的集合類變成一個線程安全的集合類
用Collections工具類的方法即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章