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

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

第三課 Java并發(fā)體系-第一階段-多線程基礎(chǔ)知識(shí)

2023-02-19 20:45 作者:楓葉天闌  | 我要投稿

一、程序、進(jìn)程、線程的理解

1、程序(programm)

概念:是為完成特定任務(wù)、用某種語(yǔ)言編寫的一組指令的集合。即指一段靜態(tài)的代碼。


2、進(jìn)程(process)

概念:程序的一次執(zhí)行過(guò)程,或是正在運(yùn)行的一個(gè)程序。

說(shuō)明:進(jìn)程作為資源分配的單位,系統(tǒng)在運(yùn)行時(shí)會(huì)為每個(gè)進(jìn)程分配不同的內(nèi)存區(qū)域


3、線程(thread)

概念:進(jìn)程可進(jìn)一步細(xì)化為線程,是一個(gè)程序內(nèi)部的一條執(zhí)行路徑。

說(shuō)明:線程作為CPU調(diào)度和執(zhí)行的單位,每個(gè)線程擁獨(dú)立的運(yùn)行棧和程序計(jì)數(shù)器(pc),線程切換的開(kāi)銷小。


進(jìn)程可以細(xì)化為多個(gè)線程。

每個(gè)線程,擁有自己獨(dú)立的:棧、程序計(jì)數(shù)器

多個(gè)線程,共享同一個(gè)進(jìn)程中的結(jié)構(gòu):方法區(qū)、堆。



二、 并行與并發(fā)

(1)?單核CPU與多核CPU的理解

- 單核CPU,其實(shí)是一種假的多線程,因?yàn)樵谝粋€(gè)時(shí)間單元內(nèi),也只能執(zhí)行一個(gè)線程的任務(wù)。例如:雖然有多車道,但是收費(fèi)站只有一個(gè)工作人員在收費(fèi),只有收了費(fèi)才能通過(guò),那么CPU就好比收費(fèi)人員。如果某個(gè)人不想交錢,那么收費(fèi)人員可以把他“掛起”(晾著他,等他想通了,準(zhǔn)備好了錢,再去收費(fèi)。)但是因?yàn)镃PU時(shí)間單元特別短,因此感覺(jué)不出來(lái)。

- 如果是多核的話,才能更好的發(fā)揮多線程的效率。(現(xiàn)在的服務(wù)器都是多核的)

- 一個(gè)Java應(yīng)用程序java.exe,其實(shí)至少三個(gè)線程:main()主線程,gc()垃圾回收線程,異常處理線程。當(dāng)然如果發(fā)生異常,會(huì)影響主線程。


(2)?并行與并發(fā)的理解

并行:多個(gè)CPU同時(shí)執(zhí)行多個(gè)任務(wù)。比如:多個(gè)人同時(shí)做不同的事。

并發(fā):一個(gè)CPU(采用時(shí)間片)同時(shí)執(zhí)行多個(gè)任務(wù)。比如:秒殺、多個(gè)人做同一件事



三、創(chuàng)建線程的幾種方法

(1)? 繼承Thread類創(chuàng)建線程


多線程的創(chuàng)建,方式一:繼承于Thread類

1. 創(chuàng)建一個(gè)繼承于Thread類的子類

2. 重寫Thread類的run() --> 將此線程執(zhí)行的操作聲明在run()中

3. 創(chuàng)建Thread類的子類的對(duì)象

4. 通過(guò)此對(duì)象調(diào)用start()


?例子:遍歷100以內(nèi)的所有的偶數(shù)

(2) 實(shí)現(xiàn)Runnable接口創(chuàng)建線程


1、創(chuàng)建多線程的方式二:實(shí)現(xiàn)Runnable接口

????1. 創(chuàng)建一個(gè)實(shí)現(xiàn)了Runnable接口的類

????2. 實(shí)現(xiàn)類去實(shí)現(xiàn)Runnable中的抽象方法:run()

????3. 創(chuàng)建實(shí)現(xiàn)類的對(duì)象

????4. 將此對(duì)象作為參數(shù)傳遞到Thread類的構(gòu)造器中,創(chuàng)建Thread類的對(duì)象

????5. 通過(guò)Thread類的對(duì)象調(diào)用start()


2、 比較創(chuàng)建線程的兩種方式。

?????開(kāi)發(fā)中:優(yōu)先選擇:實(shí)現(xiàn)Runnable接口的方式

?????原因:實(shí)現(xiàn)的方式?jīng)]有類的單繼承性的局限性,實(shí)現(xiàn)的方式更適合來(lái)處理多個(gè)線程有共享數(shù)據(jù)的情況。?


同學(xué)們,基礎(chǔ)多線程部分會(huì)在下節(jié)課繼續(xù)做介紹。

第三課 Java并發(fā)體系-第一階段-多線程基礎(chǔ)知識(shí)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
罗江县| 平原县| 绥棱县| 桦川县| 阜阳市| 文山县| 兴城市| 西平县| 宁陵县| 临邑县| 石台县| 全州县| 湟源县| 固安县| 陵川县| 邓州市| 会昌县| 宜兰县| 瑞金市| 石阡县| 科技| 泗阳县| 紫阳县| 长沙市| 噶尔县| 唐山市| 虎林市| 方山县| 大宁县| 米林县| 海丰县| 安仁县| 上虞市| 荆门市| 望谟县| 洞口县| 太仓市| 永济市| 特克斯县| 大渡口区| 双鸭山市|