日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Thread.sleep(0)到底是個什么騷操作?

Android編程精選 ? 來源:CSDN ? 2023-01-03 11:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天看到一段有意思的代碼:Thread.sleep(0),下面就來分析一下這串看似無用的代碼到底有沒有用。

Thread.sleep(0)到底是個什么騷操作,這睡0毫秒和不睡有什么區(qū)別嗎?

操作系統(tǒng)資源的分配策略

想要去了解多線程,就先要去了解操作系統(tǒng)中資源的不同分配策略在操作系統(tǒng)中,CPU資源的分配策略有多種,下面就拿兩種最為典型的策略舉例:

時間片算法

基于時間片算法分配資源的代表就是Unix系統(tǒng)。在時間片算法中,操作系統(tǒng)會維護一個隊列,將所有的進程放入隊列中。然后操作系統(tǒng)會按照隊列中的進程順序為他們分配屬于自己的運行時間,也就是說,操作系統(tǒng)給A進程分配n毫秒時間,那么A進程在本次排隊時只可以運行n毫秒。

當A進程運行完n毫秒后,操作系統(tǒng)不管A是否運行完畢都會把運行權限強行剝奪,交給隊列里面的下一個進程去執(zhí)行,然后A進程繼續(xù)去隊列尾部進行下一次排隊。(這里,如果A在n毫秒之前提前結束或者被阻塞,操作系統(tǒng)會立即收回A的運行權限)

舉個例子:

你去食堂買飯,這種模式就是食堂會強制你去排隊,而且每人只有十分鐘點餐時間,一旦過了這個時間你就要重新去排隊。

搶占式

基于搶占式分配資源的代表是Winodws系統(tǒng)。搶占式的操作系統(tǒng)都是“儒家學派”的,默認每個進程都是“君子”。意思就是:一個進程一旦拿到CPU后,除非它主動放棄CPU權限,不然別的進程是拿不到CPU權限的。

然后操作系統(tǒng)在選取執(zhí)行權限的時候也不是隨機選的,它會根據(jù)優(yōu)先級和饑餓時間來判定誰更需要CPU權限的。每次一個進程是釋放CPU后,就會進行一次優(yōu)先級評定。也就是說,如果運氣好,每次都會被選中。

舉個例子:

你去食堂買飯,食堂阿姨看你小伙子挺帥就先給你盛飯。然后給你盛完飯再選一次,又發(fā)現(xiàn)你這小伙子越看越順眼,就再給你一碗。

關于Sleep

拿搶占式來說。去食堂吃飯,阿姨看小伙子挺不錯,三番五次的給你盛飯,但是你已經吃飽了,這時候你就會告訴阿姨我吃飽了,接下來半小時不要再給我盛飯了。

對應到代碼里就是,A最近30min不想再參與資源選舉了,這時它就會sleep(30 * 60 * 1000),然后操作系統(tǒng)就會進行再次選舉,并且未來半小時A不參與選舉。此時當A醒來之后,或許CPU執(zhí)行權在另一個進程手里。

再說Thread.sleep(0)

假如A執(zhí)行了一段時間后,突然想起來其他小伙伴可能也需要CPU執(zhí)行權限,不能光自己一個人霸占這個CPU,但是又沒辦法主動申請再次選舉,就只能退而求其次執(zhí)行Thread.sleep(0),在A有執(zhí)行權限的情況下執(zhí)行,執(zhí)行后告訴操作系統(tǒng),我要休息0毫秒,你接下來0毫秒內的選舉就不要選我啦。但是操作系統(tǒng)下次再選舉的時候還是會把A算進去,因為0毫秒已經過了。

總結

Thread.sleep(0)不光有用,而且有奇效,對于想做老好人的進程可以調用一次,讓操作系統(tǒng)再次進行選舉。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4810

    瀏覽量

    98613
  • 操作系統(tǒng)

    關注

    37

    文章

    7443

    瀏覽量

    129644
  • 代碼
    +關注

    關注

    30

    文章

    4977

    瀏覽量

    74420

原文標題:Thread.sleep(0)到底是個什么騷操作?

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MOS管到底是什么?和三極管、繼電器有什么本質區(qū)別?

    MOS管到底是什么?和三極管、繼電器有什么本質區(qū)別?在電子設備的“心臟”部位,藏著許多默默工作的“開關選手”。它們操控著電流的通斷,決定著設備的效率與穩(wěn)定性。其中,MOS管作為近年來高頻
    的頭像 發(fā)表于 01-07 13:46 ?1069次閱讀
    MOS管<b class='flag-5'>到底是</b>什么?和三極管、繼電器有什么本質區(qū)別?

    IGBT到底是什么?-從名稱入手來帶您了解

    對于工作需要用到IGBT、但從未專業(yè)學習過IGBT的人來說, IGBT到底是什么、它為什么叫IGBT、它的核心關鍵詞是什么、要怎么理解它 等一系列問題并無法一次性在某個地方獲取到,都需要查閱大量的資料,學習大量的基礎才能有初步的了解。 為了讓更多的人在更少的時間內掌握I
    的頭像 發(fā)表于 11-25 17:38 ?2889次閱讀
    IGBT<b class='flag-5'>到底是</b>什么?-從名稱入手來帶您了解

    請問Keil中的map文件到底是什么意思?

    Keil中的map文件到底是什么意思?里面是如何進行相關執(zhí)行操作
    發(fā)表于 11-25 06:59

    單片機和嵌入式,到底是什么關系?

    的關系:什么是單片機?什么是嵌入式?它們到底是不是一回事?先說說大家最先聽說的那個詞——單片機(MCU)。單片機,全稱是MicrocontrollerUnit,顧名思
    的頭像 發(fā)表于 11-14 10:28 ?2131次閱讀
    單片機和嵌入式,<b class='flag-5'>到底是</b>什么關系?

    單片機的差分信號到底是什么?

    差分信號到底是什么?通俗來講,就是驅動端發(fā)送兩等值、反相的信號,接收端通過比較這兩電壓的差值來判斷邏輯狀態(tài)“0”還是“1”。 差分信號的產生是由輸入源發(fā)出信號后經過緩沖器和倒相器
    發(fā)表于 11-12 06:44

    RT_Thread Studio到底是用什么工具構建的?Scons還是Cmake?

    ;../rt-thread/libcpu/arm/common/div0.c\" ../rt-thread/src/thread.c: In function \'_
    發(fā)表于 10-10 07:49

    使用rt-thread studio ,配置某對GPIO為串口,比如配置PA0與PA1 為uart1 ;如何操作?

    請教一下,使用rt-thread studio ,配置某對GPIO為串口,比如配置PA0與PA1 為uart1 ;如何操作? 我在rt-thread studio中,已經寫好測試的串口
    發(fā)表于 09-11 07:50

    請問rt-thread studio中沒有的芯片該如何操作?

    rt-thread studio中沒有的芯片該如何操作? 如題,比如我使用的芯片rt-thread studio中沒有,我應該如何操作?有沒有操作
    發(fā)表于 09-10 08:21

    IEC 到底是什么?為什么它能影響全球?

    IEC 到底是什么?為什么它能影響全球?
    的頭像 發(fā)表于 09-04 17:07 ?3949次閱讀

    【好書推薦】RT-Thread第20本相關書籍!《嵌入式實時操作系統(tǒng)RT-Thread原理與應用》| 技術集結

    01內容簡介ContentSummary本書為讀者提供了一全面、系統(tǒng)的RT-Thread學習指南,旨在幫助初學者及有經驗的開發(fā)者掌握RT-Thread實時操作系統(tǒng)和STM32嵌入式微
    的頭像 發(fā)表于 08-24 10:05 ?1331次閱讀
    【好書推薦】RT-<b class='flag-5'>Thread</b>第20本相關書籍!《嵌入式實時<b class='flag-5'>操作</b>系統(tǒng)RT-<b class='flag-5'>Thread</b>原理與應用》| 技術集結

    RT-Thread 遇上 Rust:安全內核 RusT-Thread 的誕生

    大家好,我們是中國科學技術大學操作系統(tǒng)原理與設計(H)課oooooS小組。這個項目是我們的課程大作業(yè):參考RT-Thread架構,使用Rust搭建一原生的嵌入式操作系統(tǒng)內核。初識Ru
    的頭像 發(fā)表于 08-02 11:03 ?3744次閱讀
    RT-<b class='flag-5'>Thread</b> 遇上 Rust:安全內核 RusT-<b class='flag-5'>Thread</b> 的誕生

    晶振的 “負載電容” 到底是什么

    負載電容,到底是什么? 負載電容,簡單來說,是指晶振的兩條引線連接IC塊內部及外部所有有效電容之和,我們可以將其看作晶振片在電路中串接的電容。從更專業(yè)的角度講,它是為了使晶振能夠在其標稱頻率下穩(wěn)定
    的頭像 發(fā)表于 07-25 16:26 ?1233次閱讀

    請問編譯純rtos到底是選擇Linux+rtos的sdk編譯only rtos還是直接使用rtos sdk?

    編譯純rtos到底是選擇Linux+rtos的sdk編譯only rtos還是直接使用rtos sdk?
    發(fā)表于 07-11 07:22

    【直播預告】《實時操作系統(tǒng)應用技術—基于RT-Thread與ARM的編程實踐》教學脈絡及資源簡介

    直播預告直播主題:《實時操作系統(tǒng)應用技術—基于RT-Thread與ARM的編程實踐》教學脈絡及資源簡介開放時間:2025年5月29日(周四)20:00主講老師:王宜懷課程類型:視頻直播觀看平臺
    的頭像 發(fā)表于 05-26 17:50 ?1424次閱讀
    【直播預告】《實時<b class='flag-5'>操作</b>系統(tǒng)應用技術—基于RT-<b class='flag-5'>Thread</b>與ARM的編程實踐》教學脈絡及資源簡介

    請問CY68013上位機發(fā)送的返回值到底代表什么意思?

    ,為0時代表發(fā)送失敗,剛開始一直沒問題,F(xiàn)PGA端接收也正常,上位機返回值也是1, 最后返回值一直是0,所以我一直認為發(fā)送失敗了,但是今天在FPGA一端抓波形發(fā)現(xiàn),數(shù)據(jù)是發(fā)送過去了的,請問這個返回值到底是什么意思? 在FPGA端
    發(fā)表于 05-22 07:16
    奎屯市| 曲麻莱县| 苍梧县| 吉林市| 伊川县| 阿瓦提县| 石楼县| 鄱阳县| 汝阳县| 裕民县| 乐昌市| 图片| 桂林市| 石泉县| 拜泉县| 日土县| 新干县| 禄丰县| 浪卡子县| 金秀| 洪雅县| 荣昌县| 大连市| 石景山区| 潼南县| 泗洪县| 邵阳市| 顺昌县| 静海县| 常德市| 政和县| 临泽县| 九龙坡区| 辛集市| 惠安县| 西充县| 瓮安县| 平塘县| 孟州市| 双辽市| 松潘县|