線程誕生的原因: 随着計算機的發展,對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();
}
}
線程的生命周期如圖所示:
簡單說明一下:a.jdk8中stop()方法已經不使用了。
今天先複習到這裡吧。。。持續更新~