天天看點

【Java基礎】線程和程序

線程誕生的原因: 随着計算機的發展,對CPU的要求越來越高,程序之間的切換開銷較大,已經無法滿足越來越複雜的程式的要求了。于是就發明了線程。(要了解線程,首先就要清楚曆史背景,先有程序後有線程。)

程序的概念:程序是指可執行程式,并存放在計算機存儲器的一個指令序列,它是一個動态執行的過程。

線程的概念: 線程是程式執行中一個單一的順序控制流程,是程式執行流的最小單元,是處理器排程和分派的基本機關。一個程序可以有一個或多個線程,各個線程之間共享程式的記憶體空間(也就是所在程序的記憶體空間)。

線程的組成:                                                      程序的組成:

a.線程ID                                                         a.記憶體空間(代碼、資料、程序空間、打開的檔案)

b.目前指令指針(PC)                                    b.一個或多個線程組成

c.寄存器和堆棧組成。

線程和程序的差別:

線程的建立:

a.繼承Thread類

class MyThread extends Thread{
	public void run() {
		System.out.println(getName()+"線程 正在運作中!");
	}
}
public class ThreadTest {
	public static void main(String[] args) {
		MyThread mt=new MyThread();
		mt.start();
	}
}
           

b.實作 Runnable接口

class PrintRunnable implements Runnable{
	public void run() {
		System.out.println(Thread.currentThread().getName()+"在運作中!");
	}
}
public class Test {
	public static void main(String args[]) {
		PrintRunnable pr1=new PrintRunnable();
		Thread th1=new Thread(pr1);
		th1.start();
		PrintRunnable pr2=new PrintRunnable();
		Thread th2=new Thread(pr2);
		th2.start();
	}
}
           

線程的生命周期如圖所示:

【Java基礎】線程和程式

簡單說明一下:a.jdk8中stop()方法已經不使用了。 

今天先複習到這裡吧。。。持續更新~

繼續閱讀