日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Thread.onSpinWait()有什么作用?為什么要睡眠0毫秒?

來源: 責編: 時間:2024-04-12 17:33:32 231觀看
導讀概述今天在整理之前學習資料時,偶然看見之前自己寫的demo:public class MyTest { static volatile boolean temp = true; public static void main(String[] args) throws InterruptedException { Thread

Byx28資訊網——每日最新資訊28at.com

概述

今天在整理之前學習資料時,偶然看見之前自己寫的demo:Byx28資訊網——每日最新資訊28at.com

public class MyTest {    static volatile boolean temp = true;    public static void main(String[] args) throws InterruptedException {        Thread thread = new Thread(() -> {            while (temp) {                Thread.onSpinWait(); // Thread.sleep(0);            }            System.out.print("檢測到變量為false,退出循環");        });        thread.start();        Thread.sleep(3000L);        temp = false;    }}

運行結果:Byx28資訊網——每日最新資訊28at.com

檢測到變量為false,退出循環

為了使線程能夠更快的循環,以便讓我能夠及時的知道temp的狀態,盡快的進行下一次循環,在方法中我比較粗暴的加入了Thread.onSpinWait()方法,Thread.onSpinWait()方法大家可以認為是Thread.sleep(0)的作用,那么我為什么要加一個睡眠0毫秒的動作呢?讓線程掛起0毫秒有什么用途呢?Byx28資訊網——每日最新資訊28at.com

線程狀態

在Java中,線程有三個基本的狀態:就緒狀態(Runnable)、運行狀態(Running)和阻塞狀態(Blocked)。Byx28資訊網——每日最新資訊28at.com

  • 就緒狀態(Runnable):當線程被創建并啟動后,它進入就緒狀態。在就緒狀態下,線程已經準備好執行,但還沒有獲取到CPU的執行時間片。線程處于就緒狀態時,可以被調度器選擇為下一個要執行的線程。
  • 運行狀態(Running):當線程獲取到CPU的執行時間片時,它進入運行狀態。在運行狀態下,線程正在執行其任務代碼。線程會一直保持運行狀態,直到它主動放棄CPU的執行時間片,或者被其他高優先級線程搶占CPU。
  • 阻塞狀態(Blocked):線程在某些情況下會進入阻塞狀態。當線程在執行過程中遇到某些阻塞的情況,比如等待I/O操作、等待獲取鎖、等待其他線程的通知等,它會進入阻塞狀態。在阻塞狀態下,線程暫時停止執行,不會占用CPU資源。當阻塞條件滿足時,線程會被喚醒并重新進入就緒狀態,等待獲取CPU執行時間片。

Byx28資訊網——每日最新資訊28at.com

線程的狀態轉換如下:Byx28資訊網——每日最新資訊28at.com

  • 就緒狀態 -> 運行狀態:當線程被調度器選擇為下一個要執行的線程時,它從就緒狀態轉換為運行狀態。
  • 運行狀態 -> 就緒狀態:線程主動調用yield()方法或者sleep()方法,或者被其他高優先級線程搶占CPU時,它從運行狀態轉換為就緒狀態。
  • 運行狀態 -> 阻塞狀態:線程在執行過程中遇到阻塞條件,比如等待I/O操作或獲取鎖時,它從運行狀態轉換為阻塞狀態。
  • 阻塞狀態 -> 就緒狀態:當阻塞條件滿足時,線程被喚醒,從阻塞狀態轉換為就緒狀態,等待獲取CPU執行時間片

線程的狀態轉換是由操作系統的調度器和Java虛擬機共同管理的。通過合理地管理線程的狀態,可以實現多線程的并發執行和協作操作。Byx28資訊網——每日最新資訊28at.com

Thread.sleep(0)的意義

Java中,使用Thread.sleep(0)的目的是讓當前線程主動放棄CPU的執行時間片,以便給其他具有相同優先級的線程執行的機會。雖然參數為0,但實際上并不是讓線程休眠0毫秒,而是讓線程進入就緒狀態,等待重新獲取CPU執行時間。Byx28資訊網——每日最新資訊28at.com

使用Thread.sleep(0)的主要意義在于提高多線程程序的公平性和響應性。當一個線程執行Thread.sleep(0)時,操作系統會重新調度其他就緒狀態的線程,這樣可以避免某個線程長時間占用CPU而導致其他線程無法得到執行的情況,從而提高了程序的公平性。Byx28資訊網——每日最新資訊28at.com

此外,Thread.sleep(0)還可以用于線程間的協作。當一個線程需要通知其他線程進行某些操作時,可以使用Thread.sleep(0)來主動放棄CPU執行時間,讓其他線程有機會執行相應的操作。Byx28資訊網——每日最新資訊28at.com

Thread.onSpinWait()

@IntrinsicCandidatepublic static void onSpinWait() {}

onSpinWait()方法是空實現,被@IntrinsicCandidate修飾,在JDK中,被@IntrinsicCandidate修飾的方法作為內部候選方法(intrinsic candidate)。內部候選方法是指可以由編譯器或虛擬機進行特殊處理的方法,以提供更高效的執行方式或更好的性能。Byx28資訊網——每日最新資訊28at.com

Byx28資訊網——每日最新資訊28at.com

簡單來說就是jdk對Thread.onSpinWait()方法進行了特殊優化,那么優化后的效率到底有沒有提升呢?Byx28資訊網——每日最新資訊28at.com

public class MyTest {    public static void main(String[] args) throws InterruptedException {        long start = System.currentTimeMillis();        for (int i = 0; i < 100000000; i++) {            Thread.sleep(0);        }        System.out.println(System.currentTimeMillis() - start);        start = System.currentTimeMillis();        for (int i = 0; i < 100000000; i++) {            Thread.onSpinWait();        }        System.out.println(System.currentTimeMillis() - start);        start = System.currentTimeMillis();        for (int i = 0; i < 100000000; i++) {        }        System.out.println(System.currentTimeMillis() - start);    }}

運行結果:Byx28資訊網——每日最新資訊28at.com

2322420

上述程序,循環一億次可以看出,在速度方面 空循環 > Thread.onSpinWait() > Thread.sleep(0), 空循環和Thread.onSpinWait()僅存在細微差別。Byx28資訊網——每日最新資訊28at.com

在cpu利用方面: Thread.onSpinWait() = Thread.sleep(0) > 空循環Byx28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-83283-0.htmlThread.onSpinWait()有什么作用?為什么要睡眠0毫秒?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Facebook 為 React 寫了一種語言,看完直呼 “秀” 啊!

下一篇: 告別重復勞動:2024年學會用Node.js一鍵搞定CLI工具

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美精品1区2区| 国产精品99久久久久久有的能看| 欧美无乱码久久久免费午夜一区| 欧美日韩国产精品一区二区亚洲| 欧美午夜女人视频在线| 国产精品免费视频xxxx| 国产资源精品在线观看| 亚洲激情亚洲| 中文无字幕一区二区三区| 性欧美暴力猛交69hd| 久久色在线观看| 欧美精品色一区二区三区| 国产精品久久久久毛片大屁完整版 | 亚洲欧美日韩网| 欧美自拍丝袜亚洲| 男女精品网站| 国产精品你懂得| 亚洲第一视频网站| 亚洲午夜精品福利| 久久伊人亚洲| 国产精品女人毛片| 亚洲国产成人精品久久| 亚洲一区二区在线看| 理论片一区二区在线| 欧美午夜在线一二页| 国产综合色精品一区二区三区| 亚洲三级免费| 欧美在线亚洲在线| 欧美三级第一页| 亚洲成人在线| 欧美一级久久久| 欧美日韩日本国产亚洲在线| 激情小说亚洲一区| 亚洲男人av电影| 欧美精品三级| 在线播放不卡| 午夜精品久久久久久久久久久久久| 免费在线亚洲欧美| 国产欧美在线看| av成人免费在线| 美腿丝袜亚洲色图| 国产亚洲精品久| 亚洲一区二区影院| 欧美日韩999| 亚洲大片av| 欧美一区二区三区的| 欧美日韩国产专区| 亚洲二区免费| 欧美综合77777色婷婷| 欧美色区777第一页| 亚洲国产中文字幕在线观看| 性做久久久久久久免费看| 欧美日本免费| 亚洲国产精品成人综合色在线婷婷 | 久久精品视频导航| 久久婷婷蜜乳一本欲蜜臀| 国产精品入口麻豆原神| 亚洲欧洲精品一区二区| 久久青草欧美一区二区三区| 国产精品一区二区视频| 一区二区三区久久精品| 欧美激情一区二区三区蜜桃视频 | 日韩亚洲欧美在线观看| 免费亚洲一区二区| 伊人久久噜噜噜躁狠狠躁| 欧美在线看片| 国产区精品在线观看| 亚洲自拍偷拍网址| 国产精品久久久| 亚洲一级一区| 欧美视频在线免费看| 亚洲精选成人| 欧美日本高清一区| 亚洲美女色禁图| 欧美另类在线观看| 欧美大胆人体视频| 1769国内精品视频在线播放| 久久精品91| 国产一区二区三区免费不卡| 欧美一级视频精品观看| 国产精品制服诱惑| 小嫩嫩精品导航| 国产精品自在在线| 亚洲欧美日韩精品在线| 国产精品三级久久久久久电影| 亚洲一区久久久| 国产精品久久久久久久久久免费看 | 国产资源精品在线观看| 久久精品人人做人人爽| 国产欧美日韩精品专区| 欧美在线free| 国内外成人免费激情在线视频 | 久久久久久久国产| 在线精品视频免费观看| 欧美a级一区二区| 亚洲精品一二三| 欧美日韩三级视频| 亚洲综合欧美| 国产综合色产在线精品| 老鸭窝91久久精品色噜噜导演| 亚洲高清一区二区三区| 欧美精品久久99久久在免费线| 亚洲精品视频在线| 欧美午夜精品一区| 校园春色国产精品| 精品动漫av| 欧美日韩岛国| 香港久久久电影| 在线观看视频一区二区欧美日韩| 嫩草成人www欧美| 亚洲另类一区二区| 国产精品va| 欧美主播一区二区三区| 国产综合精品| 免费不卡视频| 99国产精品视频免费观看| 国产精品高潮呻吟| 久久成年人视频| 亚洲国产成人久久| 欧美日韩视频在线观看一区二区三区| 亚洲视频网在线直播| 国产美女搞久久| 美女性感视频久久久| 亚洲影音先锋| 久久大综合网| 最新国产乱人伦偷精品免费网站 | 欧美sm视频| 亚洲亚洲精品三区日韩精品在线视频| 国产三级精品在线不卡| 欧美91福利在线观看| 亚洲性线免费观看视频成熟| 国产一区在线免费观看| 欧美精品 国产精品| 先锋影院在线亚洲| 91久久久久久久久| 国产精品亚洲一区| 欧美粗暴jizz性欧美20| 亚洲欧美三级伦理| 亚洲品质自拍| 国产性天天综合网| 欧美日韩精选| 久久天天综合| 亚洲欧美日韩精品综合在线观看| 91久久午夜| 国产一区二区三区免费不卡| 欧美片网站免费| 久久精品最新地址| 亚洲无亚洲人成网站77777| 曰本成人黄色| 国产欧美日韩综合一区在线观看| 免费在线观看日韩欧美| 亚洲欧美日韩成人高清在线一区| 亚洲国产高清一区二区三区| 国产精品久久久久久久电影| 欧美凹凸一区二区三区视频| 欧美一级夜夜爽| 中文在线资源观看网站视频免费不卡| 永久555www成人免费| 国产精品自拍在线| 欧美日韩在线三区| 欧美99久久| 久久久www成人免费精品| 亚洲一区二区三区免费在线观看| 亚洲国产cao| 国产一区二区欧美| 国产精品美女久久久浪潮软件| 欧美激情女人20p| 久久夜色精品| 久久国产精品网站| 亚洲欧美亚洲| 亚洲香蕉在线观看| 日韩一级成人av| 亚洲国产欧美在线| 黄色精品在线看| 国产一区二区看久久| 国产精品午夜av在线| 欧美视频在线观看| 欧美精选在线| 欧美高清视频免费观看| 久久久久久久久久码影片| 亚洲欧美在线一区二区| 中文国产成人精品久久一| 亚洲精品欧美日韩| 亚洲国产欧美一区二区三区丁香婷| 国产在线视频欧美一区二区三区| 国产精品久久久久久久第一福利| 欧美日韩国产在线播放网站| 欧美激情欧美狂野欧美精品 | 欧美午夜a级限制福利片| 欧美福利一区| 免费成人av在线看| 久久久久久久久久久久久久一区 | 国产一区二区三区久久精品| 国产精品美女一区二区在线观看| 欧美日韩成人综合天天影院| 欧美成年视频| 欧美成人a视频| 欧美成人在线影院| 欧美激情1区2区| 欧美另类人妖| 欧美三级在线| 亚洲视频 欧洲视频| 在线亚洲国产精品网站| 亚洲伦理在线|