首頁 > 文學

南昌達內Java程式設計執行緒概念與建立方式

作者:由 太原達內教育 發表于 文學日期:2023-01-15

怎麼使用程序建立執行緒

Java程式設計開發是目前大多數軟體開發程式設計師都在學習與應用的一個程式設計開發語言,今天我們就透過案例分析來了解一下,Java程式設計執行緒概念與建立方式。

南昌達內Java程式設計執行緒概念與建立方式

1、什麼是執行緒

程序是程式碼在資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位。執行緒則是進行的一個執行路徑一個程序中至少含有一個執行緒,程序中的多個執行緒共享程序的資源。

作業系統在分配資源的時候是把資源分配給程序的,但是CPU資源比較特殊,它是分配給執行緒的,因此真正要佔用CPU資源的是執行緒,執行緒是CPU分配的基本單位。

在java中,啟動main函式其實就是啟動了一個JVM程序,而main函式所在的執行緒就是這個程序中的一個執行緒,也稱主執行緒。

2、程序和執行緒的關係

每一個程序會有若干個執行緒,多個執行緒之間共享程序中的堆和方法區資源。但是每個執行緒都有自己的程式計數器金和棧區。

程式計數器是一塊記憶體區域,用來記錄當前要執行指令的地址,那麼為何要將程式計數器設為私有的呢?原因是執行緒才是CPU執行的基本單位,而CPU一般使用的是時間片輪轉的方式讓執行緒輪詢佔用。所以當前執行緒CPU時間片用完後,就要讓出CPU,等下次輪到自己的時候再執行。這就需要程式計數器記錄當前CPU執行到哪裡了,下一步該執行的指令地址是什麼,等下次該執行緒再次分配到CPU時間片之後就可以從私有的程式計數器中讀取並繼續執行。

每個執行緒都有自己的棧資源,用於儲存該執行緒的區域性變數,這些區域性變數是執行緒私有的,其他執行緒所不能訪問的。

堆是一個程序中大的一塊記憶體,堆倍程序中的所有執行緒都是共享的,是建立程序的時候分配的,堆裡面主要存放的是new操作建立的物件例項。

方法區用來存放的是JVM載入的類,常量以及靜態變數等資訊,也是執行緒共享的。

3、執行緒建立與執行

java中有三種建立執行緒的方式

實現Runnable介面的run方法沒有返回值

繼承Threag類並重寫run方法沒有返回值

使用FutureTask方式有返回值