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

歡迎訪問 生活随笔!

生活随笔

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

java

【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 )

發(fā)布時間:2025/6/17 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、并發(fā)類型
  • 二、線程狀態(tài)
  • 三、CPU 數(shù)據(jù)緩存





一、并發(fā)類型



并發(fā)類型 :

  • Thread
  • Runnable
  • Future
  • ThreadPool

其中 Runnable , ThreadPool 都是基于 Thread 執(zhí)行的 ;





二、線程狀態(tài)



線程狀態(tài) :

線程剛創(chuàng)建時 , 處于 " 新建狀態(tài) " ;

調(diào)用線程 start() 方法之后 , 線程進入 Runnable " 可運行狀態(tài) " , 此時等待 OS 調(diào)度分配 CPU 時間片 運行 ;

線程分配到 CPU 時間片 之后 , 線程進入 Running " 運行狀態(tài) " , 如果線程分配的 CPU 時間片運行完畢 , 線程又回到 Runnable " 可運行狀態(tài) " ;

如果運行過程中 , 手動調(diào)用了 Thread.sleep() 或 join()方法 , 線程進入了 " 阻塞狀態(tài) " , 線程喚醒之后又回到 Runnable " 運行狀態(tài) " ;

線程運行完畢之后 , 或者線程執(zhí)行出現(xiàn)異常 , 進入 Dead " 死亡狀態(tài) " ;





三、CPU 數(shù)據(jù)緩存



程序執(zhí)行時 , 主要是 CPU 執(zhí)行程序中的指令 , 指令的運行 , 還需要 加載相應(yīng)的數(shù)據(jù) ;

CPU 運行的速度很快 , 如果每次 使用 I/O 總線訪問內(nèi)存獲取 CPU 執(zhí)行所需的數(shù)據(jù) , 無法將 CPU 的性能優(yōu)勢發(fā)揮到最大 ;


數(shù)據(jù)從 磁盤 中讀取 , 加入到 內(nèi)存 中 , 線程執(zhí)行后 , 會將需要操作的數(shù)據(jù)加入到 CPU 緩存 中 ;

CPU 緩存分為 L1 , L2 , L3 , 333 個級別的緩存 , 如下圖所示 ;

CPU 執(zhí)行線程時 , 不直接操作內(nèi)存中的數(shù)據(jù) , 而是通過 CPU 緩存進行處理 ;


JMM ( Java Memory Model - Java 內(nèi)存模型 ) 參考了 CPU 緩存模型 , CPU 都是多核的 , 每個核中都有 L1 和 L2 緩存 , L3 緩存整個 CPU 的所有核心共同使用 ;

Java 內(nèi)存模型只是一種規(guī)范 ;

Java 虛擬機運行時內(nèi)存 , 是不同的虛擬機實現(xiàn)的不同的內(nèi)存使用方式 ;

每種虛擬機的底層實現(xiàn)都是不同的 ;


Java 線程 運行時 , 每個 Java 線程都配套一個 工作內(nèi)存 , 然后工作內(nèi)存從 主內(nèi)存 中獲取數(shù)據(jù) , 主內(nèi)存被所有工作內(nèi)存共享 ;

  • 工作內(nèi)存 就是 線程的 本地內(nèi)存 , 其中存儲的是主內(nèi)存中的 變量副本 , 使用主內(nèi)存的變量前 , 先將變量拷貝工作內(nèi)存中 ;
  • 當在線程中 修改了工作內(nèi)存中的數(shù)據(jù) , 需要同時 將變量的修改同步到主內(nèi)存中 ;

這里的 工作線程 / 本地線程 相當于 CPU 中的 L1 / L2 緩存 , 主內(nèi)存 相當于 CPU 中的 L3 緩存 ;


如果多個線程同時對 主內(nèi)存 中的同一個變量進行修改 , 變量的值被不同線程按照不同順序進行改變 , 主線程中的這個變量是 線程不安全的 ;

總結(jié)

以上是生活随笔為你收集整理的【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。