iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

JAVA系列 第 21

JAVA的Program,Process,Thread

  • 分享至 

  • xImage
  •  

在介紹Thread之前,我們必須先把Program和Process這兩個觀念作一個釐清。

Program:一群程式碼的集合,用以解決特定的問題。以物件導向的觀念來類比,相當於Class。
Process:由Program所產生的執行個體,一個Program可以同時執行多次,產生多個Process。以物件導向的觀念來類比,相當於Object。

而Thread的重點如下:
1.一個Process可以有多個Thread。
2.同一個Process內的Thread使用相同的Memory Space,但這些Thread各自擁有其Stack。換句話說,Thread能透過reference存取到相同的Object,但是local variable卻是各自獨立的。
3.作業系統會根據Thread的優先權以及已經用掉的CPU時間,在不同的Thread作切換,以讓各個Thread都有機會執行。

我們要如何產生Thread呢?
Java以java.lang.Thread這個類別來表示Thread。Class Thread有兩個Constructor:
1.Thread()
2.Thread(Runnable)

第一個Constrctor沒有參數,第二個需要一個Runnable物件當參數。(Runnable是一個interface,定義於java.lang內)

Thread的優先權與影響資源的相關方法:
Thread.setPriority(int)可以設定Thread的優先權,數字越大優先權越高。Thread定義了3個相關的static final variable

public static final int MAX_PRIORITY 10
public static final int MIN_PRIORITY 1
public static final int NORM_PRIORITY 5
這邊要特別提醒的是,優先權高的Thread其佔有CPU的機會比較高,但優先權低的也都會有機會執行到。


上一篇
JAVA的Interface
下一篇
JAVA--GUI 圖形介面程式
系列文
JAVA30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言