国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

? 多線程面試-什么是多線程上下文切換?

這篇具有很好參考價(jià)值的文章主要介紹了? 多線程面試-什么是多線程上下文切換?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? 多線程面試-什么是多線程上下文切換?

多線程會(huì)共同使用一組計(jì)算機(jī)上的CPU ,而線程數(shù)大于給線程分配的 CPU 數(shù)量時(shí),為了讓各個(gè)線程都有執(zhí)行的機(jī)會(huì),就需要輪轉(zhuǎn)使用CPU。

不同的線程切換使用 CPU, 發(fā)生的切換數(shù)據(jù)等, 就是上下文切換

  • 在上下文切換過程中, CPU 會(huì)停止處理當(dāng)前運(yùn)行的程序, 并保存當(dāng)前程序運(yùn)行的具體位置, 以便之后繼續(xù)運(yùn)行. 從這個(gè)角度來看, 上下文切換有點(diǎn)像我們同時(shí)閱讀幾本書, 在來回切換書本的同時(shí)我們需要記住每本書當(dāng)前讀到的頁碼. 在程序中, 上下文切換過程中的 “頁碼” 信息是保存在進(jìn)程控制塊(PCB)中的。PCB 還經(jīng)常被稱作 “切換幀”(switchframe)。“頁碼”信息會(huì)一直保存到CPU的內(nèi)存中,直到他們被再次使用。
  • 上下文切換是存儲(chǔ)和恢復(fù)CPU狀態(tài)的過程,它使得線程執(zhí)行能夠從中斷點(diǎn)恢復(fù)執(zhí)行。上下文切換是多任務(wù)操作系統(tǒng)和多線程環(huán)境的基本特征。

?? Java中用到的線程調(diào)度算法是什么?

假設(shè)計(jì)算機(jī)只有一個(gè)CPU,則在任意時(shí)刻只能執(zhí)行一個(gè)條機(jī)器指令,每個(gè)線程只有獲得CPU的使用權(quán)才能執(zhí)行指令。

  • 所謂多線程的并發(fā)運(yùn)行,其實(shí)是指從宏觀上看,各個(gè)線程輪流獲得CPU的使用權(quán),分別執(zhí)行各自的任務(wù)。
  • 在運(yùn)行池中,會(huì)有多個(gè)處于就緒狀態(tài)的線程在等待CPU,Java虛擬機(jī)的一項(xiàng)任務(wù)就是負(fù)責(zé)線程的調(diào)度,線程調(diào)度是指按照特定機(jī)制為多個(gè)線程分配CPU的使用權(quán)。

有兩種調(diào)度模型:分時(shí)調(diào)度模型和搶占式調(diào)度模型。

  • 分時(shí)調(diào)度模型是指讓所有的線程輪流獲得CPU的使用權(quán),并且平均分配每個(gè)線程占用的CPU的時(shí)間片這個(gè)也比較好理解。

  • Java虛擬機(jī)采用搶占式調(diào)度模型,是指優(yōu)先讓可運(yùn)行池中優(yōu)先級(jí)高的線程占有CPU,如果可運(yùn)行池中的線程優(yōu)先級(jí)相同,那么就隨機(jī)選擇一個(gè)線程,是其占用CPU。處于運(yùn)行狀態(tài)的線程會(huì)一直運(yùn)行,直至它不得不放棄CPU。

    如非特別需要,盡量不要用,防止線程接饑餓。

?? 什么是線程饑餓 ?

饑餓,一個(gè)或者多個(gè)線程因?yàn)榉N種原因無法獲得所需要的資源,導(dǎo)致一直無法執(zhí)行的狀態(tài) 。

Java 中導(dǎo)致饑餓的原因:

  • 高優(yōu)先級(jí)線程吞噬所有的低優(yōu)先級(jí)線程的 CPU 時(shí)間。
  • 線程被永久堵塞在一個(gè)等待進(jìn)入同步塊的狀態(tài),因?yàn)槠渌€程總是能在它之前持續(xù)地對(duì)該同步塊進(jìn)行訪問。
  • 線程在等待一個(gè)本身也處于永久等待完成的對(duì)象(比如調(diào)用這個(gè)對(duì)象的 wait 方法),因?yàn)槠渌€程總是被持續(xù)地獲得喚醒。

你對(duì)線程優(yōu)先級(jí)的理解是什么?

每一個(gè)線程都是有優(yōu)先級(jí)的,一般來說,高優(yōu)先級(jí)的線程在運(yùn)行時(shí)會(huì)具有優(yōu)先權(quán),但這依賴于線程調(diào)度的實(shí)現(xiàn),這個(gè)實(shí)現(xiàn)是和操作系統(tǒng)相關(guān)的(OS dependent)。文章來源地址http://www.zghlxwxcb.cn/news/detail-634727.html

  • 我們可以定義線程的優(yōu)先級(jí),但是這并不能保證高優(yōu)先級(jí)的線程會(huì)在低優(yōu)先級(jí)的線程前執(zhí)行。線程優(yōu)先級(jí)是一個(gè) int 變量(從1-10),1 代表最低優(yōu)先級(jí),10 代表最高優(yōu)先級(jí)。
  • Java 的線程優(yōu)先級(jí)調(diào)度會(huì)委托給操作系統(tǒng)去處理,所以與具體的操作系統(tǒng)優(yōu)先級(jí)有關(guān),如非特別需要,一般無需設(shè)置線程優(yōu)先級(jí)。

到了這里,關(guān)于? 多線程面試-什么是多線程上下文切換?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【CSAPP】進(jìn)程 | 上下文切換 | 用戶視角下的并發(fā)進(jìn)程

    【CSAPP】進(jìn)程 | 上下文切換 | 用戶視角下的并發(fā)進(jìn)程

    ? ?? 寫在前面: 本文將學(xué)習(xí)《深入理解計(jì)算機(jī)系統(tǒng)》的第六章 - 關(guān)于異??刂屏骱拖到y(tǒng)級(jí) I/O 的 進(jìn)程部分。CSAPP 是計(jì)算機(jī)科學(xué)經(jīng)典教材《Computer Systems: A Programmer\\\'s Perspective》的縮寫,該教材由Randal E. Bryant和David R. O\\\'Hallaron 合著。 ?? 本章目錄: 0x00 進(jìn)程(Processes) 0x01 假象

    2024年01月16日
    瀏覽(28)
  • 從零開始理解Linux中斷架構(gòu)(10)---上下文切換長征路

    有了前面章節(jié)的一大堆的鋪墊,我們現(xiàn)在考慮一個(gè)路徑比較長的任務(wù)切換: 當(dāng)前 用戶態(tài)進(jìn)程 10#,在中斷發(fā)生后,被切換到了 用戶態(tài)進(jìn)程 15#。 ? ? ? ?這里將使用異常執(zhí)行流的概念來解釋切換過程。理解了最長的那個(gè)切換,其他的任務(wù)切換:通過系統(tǒng)調(diào)用引起的任務(wù)切換,

    2024年02月11日
    瀏覽(43)
  • JS引擎中的線程,事件循環(huán),上下文

    JS引擎中的線程,事件循環(huán),上下文

    ? 線程 瀏覽器中有哪些進(jìn)程呢? 1.瀏覽器進(jìn)程:瀏覽器的主進(jìn)程,負(fù)責(zé)瀏覽器的界面界面顯示,與用戶交互,網(wǎng)址欄輸入、前進(jìn)、后退,以及頁面的創(chuàng)建和銷毀。 2.渲染進(jìn)程(瀏覽器內(nèi)核):默認(rèn)一個(gè)tab頁面一個(gè)渲染進(jìn)程,主要的作用為頁面渲染,腳本執(zhí)行,事件處理等。 3.

    2024年02月08日
    瀏覽(20)
  • 零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(下)

    零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(下)

    在前一章節(jié)中,我們了解了DMA技術(shù)在文件傳輸中的重要性,并簡要介紹了零拷貝技術(shù)。為了提高文件傳輸?shù)男阅埽覀冃枰獪p少用戶態(tài)與內(nèi)核態(tài)之間的上下文切換次數(shù)以及內(nèi)存拷貝次數(shù)。本章將深入探討零拷貝技術(shù)的優(yōu)化方法,讓我們一起走進(jìn)零拷貝的優(yōu)化之路! 當(dāng)我們意識(shí)

    2024年02月08日
    瀏覽(25)
  • 零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(上)

    零拷貝技術(shù):減少數(shù)據(jù)復(fù)制和上下文切換,提高網(wǎng)絡(luò)傳輸效率(上)

    當(dāng)涉及到網(wǎng)絡(luò)傳輸中的零拷貝技術(shù)時(shí),它在提高性能和效率方面扮演著重要的角色。在之前我們已經(jīng)討論了磁盤設(shè)備管理中的零拷貝技術(shù),其中涉及到了DMA技術(shù)?,F(xiàn)在,讓我們來深入探討一下網(wǎng)絡(luò)傳輸中零拷貝技術(shù)的實(shí)現(xiàn)方式以及它的重要性。 在沒有DMA(直接內(nèi)存訪問)技術(shù)

    2024年02月08日
    瀏覽(17)
  • Linux_進(jìn)程的優(yōu)先級(jí)&&環(huán)境變量&&上下文切換&&優(yōu)先級(jí)隊(duì)列

    Linux_進(jìn)程的優(yōu)先級(jí)&&環(huán)境變量&&上下文切換&&優(yōu)先級(jí)隊(duì)列

    什么是優(yōu)先級(jí)? 指定一個(gè)進(jìn)程獲取某種資源的先后順序 本質(zhì)是進(jìn)程獲取cpu資源的優(yōu)先順序 為什么要有優(yōu)先級(jí) 進(jìn)程訪問的資源(CPU)是有限的 操作系統(tǒng)關(guān)于調(diào)度和優(yōu)先級(jí)的原則:分時(shí)操作系統(tǒng),基本的公平,如果進(jìn)程因?yàn)殚L時(shí)間不被調(diào)整,就造成了饑餓問題 Linux的優(yōu)先級(jí)特

    2024年04月09日
    瀏覽(22)
  • Flask 上下文是什么 ?

    Flask 上下文是什么 ?

    哈嘍大家好,我是咸魚。今天我們來聊聊什么是 Flask 上下文 ? 咸魚在剛接觸到這個(gè)概念的時(shí)候腦子里蹦出的第一個(gè)詞是 CPU 上下文 ? 今天咸魚希望通過這篇文章,讓大家能夠?qū)?Flask 上下文設(shè)計(jì)的初衷以及應(yīng)用有一個(gè)基本的了解 ? 我們在使用 Flask 開發(fā) web 程序的時(shí)候,通常會(huì)

    2023年04月20日
    瀏覽(24)
  • vue-element-plus-admin框架的tag上下文切換bug

    首先貼上該框架的鏈接:https://github.com/kailong321200875/vue-element-plus-admin 在對(duì)路由進(jìn)行部分修改后,網(wǎng)站多次切換tag時(shí),控制臺(tái)會(huì)出現(xiàn)報(bào)錯(cuò): Cannot read properties of undefined (reading \\\'offsetLeft\\\') 。 我在框架的issue中找到了類似問題:打開多個(gè)TagsView時(shí)會(huì)報(bào)錯(cuò),用的 template 分支 對(duì)此,作

    2024年02月15日
    瀏覽(23)
  • Arm Cortex R52與TC3xx Aurix上下文切換對(duì)比

    Arm Cortex R52與TC3xx Aurix上下文切換對(duì)比

    目錄 1.Arm Cortex R52上下文切換 2.英飛凌TC3xx的CPU上下午切換 2.1 上下文類型 2.2 Task Switching Operation? 2.3 Context管理寄存器 ?2.4 各種事件的上下文切換 2.4.1 中斷/Trap的上下文切換 2.4.2 函數(shù)調(diào)用的上下文切換 2.4.3 FCALL/FRET的上下文切換 2.5 Context Save、Restore操作 2.6 Context 切換性能特性

    2024年02月02日
    瀏覽(25)
  • 什么是層疊上下文(stacking context)?它是如何形成的?

    什么是層疊上下文(stacking context)?它是如何形成的?

    前端入門之旅:探索Web開發(fā)的奇妙世界 歡迎來到前端入門之旅!感興趣的可以訂閱本專欄哦!這個(gè)專欄是為那些對(duì)Web開發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無論你是完全的新手還是有一些基礎(chǔ)的開發(fā)者,這里都將為你提供一個(gè)系統(tǒng)而又親切的學(xué)習(xí)平臺(tái)。在這個(gè)

    2024年02月12日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包