日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作

發布時間:2024/7/5 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Java面試的時候,經常會問到Java并發編程相關的多線程、線程池、線程鎖、線程通信等面試必考點,比如:

Java并發編程系列:Java線程池的使用方式,核心運行原理、以及注意事項

Java并發編程系列:4種常用Java線程鎖的特點,性能比較、使用場景

Java并發編程系列:CountDownLatch、Semaphore等4大并發工具類詳解

高并發編程系列:ConcurrentHashMap的實現原理(JDK1.7和JDK1.8)?

史上最強多線程面試44題和答案:線程鎖+線程池+線程同步等

今天主要分享多線程狀態流轉與通信,這也是面試中必考的基礎知識點。


多線程的基本概念

1.進程

進程是操作系統進行資源分配和調度的基本單位。


2.線程

線程是進程中的一個執行單元,負責當前進程中程序的執行,一個進程中至少有一個線程。

3.多線程

什么是多線程呢?即就是一個程序中有多個線程在同時執行。


線程的生命周期


java中每個線程都需經歷新生、就緒、運行、阻塞和死亡五種狀態,線程從新生到死亡的狀態變化稱為生命周期。


1.新建狀態

使用 new Thread 類或其子類建立一個線程對象后,該線程對象就處于新建狀態。

2.就緒狀態

調用了start()方法之后,該線程就進入就緒狀態(就緒隊列中),等待JVM里線程調度器的調度。

3.運行狀態

執行 run(),此時線程便處于運行狀態。處于運行狀態的線程最為復雜,它可以變為阻塞狀態、就緒狀態和死亡狀態。

4.阻塞狀態

如果一個線程執行了sleep(睡眠)、suspend(掛起)等方法,失去所占用資源之后,該線程就從運行狀態進入阻塞狀態。

5.死亡狀態

一個運行狀態的線程完成任務或者其他終止條件發生時,該線程就切換到終止狀態。

線程的調度策略

線程調度是指系統為線程分配處理器使用權的過程。

Java 使用的線程調度是搶占式調度,在搶占式調度下,優先級最高的任務一直執行,直到它進入等待或死亡狀態或更高優先級的任務出現,優先級高的線程比優先級低的線程優先執行。

在Java多線程環境中,為保證所有線程的執行能按照一定的規則執行,JVM實現了一個線程調度器,它定義了線程調度的策略。 在 JVM 中體現為讓可運行池中優先級高的線程擁有CPU 使用權。

線程之間的通信與協作



上面比較清楚的顯示了線程的狀態流轉,其實重點主要是掌握運行、阻塞、就緒之間的通信機制。

1.sleep()和yield()和join()


1)sleep()方法作用:讓當前線程睡眠一段時間,期間不會釋放任何持有的鎖。

2) yield()方法作用:讓出該線程的時間片給其它線程。線程調用了yield()方法,表示放棄當前獲得的CPU時間片,回到就緒狀態。最后由線程調度重新選擇就緒狀態的線程分配CPU資源。

3)join()方法作用:暫停當前線程,等待被調用線程指向結束之后再繼續執行。

注意:

1)sleep(long)方法僅釋放CPU使用權,鎖仍然占用。

2)調用join()的時候,當前線程不會釋放掉鎖。

2.wait()和notify() 方法和notifyAll()方法

1)wait()方法的作用:讓該線程處于等待狀態。

2)notify()方法的作用:喚醒處于wait的線程。

3)notifyAll()方法的作用:喚醒所有處于wait狀態的線程。

注意:

1)wait()方法會釋放CPU執行權 和 占有的鎖。

2) 線程調用wait()方法后,讓該線程處于等待狀態。進入這個狀態后,是不能自動喚醒的,必須依靠其他線程調用notify()或notifyAll()方法才能被喚醒。wait和notify必須配套使用,即必須使用同一把鎖調用。

你可能也喜歡:

  • Java多線程系列(七):并發容器的原理,7大并發容器詳解、及使用場景
  • Java多線程系列(一):最全面的Java多線程學習概述
  • Java多線程系列(六):深入詳解Synchronized同步鎖的底層實現
  • Java多線程系列(十):源碼剖析AQS的實現原理
  • Java多線程系列(五):線程池的實現原理、優點與風險、以及四種線程池實現
  • Java多線程系列(四):4種常用Java線程鎖的特點,性能比較、使用場景

  • 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 免费在线观看视频 | 国产日日夜夜 | 337p粉嫩大胆色噜噜狠狠图片 | 欧美区日韩区 | 国产视频在线观看网站 | 亚洲 小说 欧美 激情 另类 | 国产免费自拍视频 | 人妻巨大乳hd免费看 | 天堂资源最新在线 | 奇米网一区二区 | 色哟哟网站| 精品国模一区二区三区 | 国产对白刺激视频 | 超碰国产在线观看 | 少妇2做爰hd韩国电影 | 青青国产精品 | 精品国产黄色 | 国产又黄又硬又粗 | 91最新国产 | 黄色大片免费观看视频 | 欧美日韩国产一区二区三区在线观看 | 一级片久久 | 精品一区二区久久久久久按摩 | 色婷视频| 99re99热| 欧美在线视频你懂的 | 97超碰人人| 国产免费观看一区 | 久久久久毛片 | 国产精品国产三级国产专区51区 | 国产成人一区二区三区别 | 亚洲自拍偷拍图 | 国产精品一区二区人妻喷水 | 日韩精品激情 | 高清毛片aaaaaaaaa片 | 精品少妇一区二区三区密爱 | 欧美色乱| 午夜爱爱网 | 蜜桃视频一区二区 | 欧美日a| 亚洲人免费 | 久久久精品人妻av一区二区三区 | 无套内谢88av免费看 | 欧美女同视频 | 女人囗交吞精囗述 | 老狼影院伦理片 | 美女被变态侵犯 | 在线视频日韩 | 精品国产一区二区三区性色av | 呦女精品 | 91漂亮少妇露脸在线播放 | 日韩中文字幕久久 | 精品一区二区三区中文字幕 | 久青草视频在线 | 色偷偷在线观看 | 新91视频在线观看 | 女生裸体无遮挡 | 国产日韩欧美视频在线 | 久久久久久色 | 黄色免费网站视频 | 一级国产视频 | 一区二区不卡视频在线观看 | 久久国产精品-国产精品 | 色干综合| 最新免费黄色网址 | 精品亚洲永久免费 | 国产91久久精品一区二区 | 国产一区不卡在线观看 | 亚洲综合图片一区 | 99国产精品一区二区三区 | 国产美女在线观看 | 91在线色 | 国产精品激情偷乱一区二区∴ | 好吊妞在线观看 | 有机z中国电影免费观看 | 欧美日免费 | 日韩一区二区影视 | 日韩一区免费观看 | 亚洲婷婷一区 | av网站有哪些| 88av.com| 日本成人一区二区 | 女人的av | 欧美色偷偷 | 欧洲精品免费一区二区三区 | 亚洲av无码一区二区三区dv | 久久成人在线 | 国产精品国产三级国产专区51区 | 国产手机av在线 | 理论片琪琪午夜电影 | 亚洲免费一区二区 | 东方av正在进入 | 婷婷五月综合久久中文字幕 | 亚洲啪av永久无码精品放毛片 | 欧美成人69 | 日韩免费成人av | 国产精品一区二区欧美 | 欧美日韩国产激情 | 免费在线黄色av |