最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java并發(fā)編程必知必會(huì)

2022-09-29 23:57 作者:條件斷點(diǎn)  | 我要投稿

1.什么是進(jìn)程?

進(jìn)程是系統(tǒng)中正在運(yùn)行的一個(gè)程序,程序一旦運(yùn)行就是進(jìn)程。

進(jìn)程可以看成程序執(zhí)行的一個(gè)實(shí)例。進(jìn)程是系統(tǒng)資源分配的獨(dú)立實(shí)體,每個(gè)進(jìn)程都擁有獨(dú)立的地址空間。一個(gè)進(jìn)程無(wú)法訪問(wèn)另一個(gè)進(jìn)程的變量和數(shù)據(jù)結(jié)構(gòu),如果想讓一個(gè)進(jìn)程訪問(wèn)另一個(gè)進(jìn)程的資源,需要使用進(jìn)程間通信,比如管道,文件,套接字等。

2.什么是線程?

是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù)。

3.線程的實(shí)現(xiàn)方式?

1.繼承Thread類

2.實(shí)現(xiàn)Runnable接口

3.使用Callable和Future

4.Thread 類中的start() 和 run() 方法有什么區(qū)別?

1.start()方法來(lái)啟動(dòng)線程,真正實(shí)現(xiàn)了多線程運(yùn)行。這時(shí)無(wú)需等待run方法體代碼執(zhí)行完畢,可以直接繼續(xù)執(zhí)行下面的代碼;通過(guò)調(diào)用Thread類的start()方法來(lái)啟動(dòng)一個(gè)線程, 這時(shí)此線程是處于就緒狀態(tài), 并沒(méi)有運(yùn)行。然后通過(guò)此Thread類調(diào)用方法run()來(lái)完成其運(yùn)行操作的, 這里方法run()稱為線程體,它包含了要執(zhí)行的這個(gè)線程的內(nèi)容, Run方法運(yùn)行結(jié)束, 此線程終止。然后CPU再調(diào)度其它線程。
2.run()方法當(dāng)作普通方法的方式調(diào)用。程序還是要順序執(zhí)行,要等待run方法體執(zhí)行完畢后,才可繼續(xù)執(zhí)行下面的代碼;程序中只有主線程------這一個(gè)線程, 其程序執(zhí)行路徑還是只有一條, 這樣就沒(méi)有達(dá)到寫線程的目的。

5.線程N(yùn)EW狀態(tài)

new創(chuàng)建一個(gè)Thread對(duì)象時(shí),并沒(méi)處于執(zhí)行狀態(tài),因?yàn)闆](méi)有調(diào)用start方法啟動(dòng)改線程,那么此時(shí)的狀態(tài)就是新建狀態(tài)。

6.線程RUNNABLE狀態(tài)

線程對(duì)象通過(guò)start方法進(jìn)入runnable狀態(tài),啟動(dòng)的線程不一定會(huì)立即得到執(zhí)行,線程的運(yùn)行與否要看cpu的調(diào)度,我們把這個(gè)中間狀態(tài)叫可執(zhí)行狀態(tài)(RUNNABLE)。

7.線程的RUNNING狀態(tài)

一旦cpu通過(guò)輪詢貨其他方式從任務(wù)可以執(zhí)行隊(duì)列中選中了線程,此時(shí)它才能真正的執(zhí)行自己的邏輯代碼。

8.線程的BLOCKED狀態(tài)

線程正在等待獲取鎖。

  • 進(jìn)入BLOCKED狀態(tài),比如調(diào)用了sleep,或者wait方法

  • 進(jìn)行某個(gè)阻塞的io操作,比如因網(wǎng)絡(luò)數(shù)據(jù)的讀寫進(jìn)入BLOCKED狀態(tài)

  • 獲取某個(gè)鎖資源,從而加入到該鎖的阻塞隊(duì)列中而進(jìn)入BLOCKED狀態(tài)

9.線程的TERMINATED狀態(tài)

TERMINATED是一個(gè)線程的最終狀態(tài),在該狀態(tài)下線程不會(huì)再切換到其他任何狀態(tài)了,代表整個(gè)生命周期都結(jié)束了。

下面幾種情況會(huì)進(jìn)入TERMINATED狀態(tài):

  • 線程運(yùn)行正常結(jié)束,結(jié)束生命周期

  • 線程運(yùn)行出錯(cuò)意外結(jié)束

  • JVM Crash 導(dǎo)致所有的線程都結(jié)束

10.后記

更多多線程資料詳見(jiàn) shimo.im/docs/2E7V3AjOJNwiYsWE/ 。

Java并發(fā)編程必知必會(huì)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
香格里拉县| 隆尧县| 游戏| 荃湾区| 耒阳市| 安顺市| 禹州市| 方山县| 天等县| 宣化县| 建宁县| 耒阳市| 永春县| 凤庆县| 阿鲁科尔沁旗| 久治县| 海宁市| 资中县| 斗六市| 垣曲县| 鲁山县| 屏山县| 迭部县| 普定县| 高平市| 常熟市| 光泽县| 新安县| 五华县| 永平县| 凤冈县| 河北省| 丰县| 郴州市| 德昌县| 康乐县| 郧西县| 当涂县| 林甸县| 灵石县| 泾源县|