執行緒及建立執行緒的三種方法
阿新 • • 發佈:2018-11-21
基本概念
程式:是為了完成特定任務,用某種語言編寫的一組指令的集合.即指一段靜態程式碼。
程序:程序是程式的一次執行過程,是系統進行資源分配和處理機排程的一個獨立單位。
程式是一個靜態的概念,程序是一個動態的概念。一個程式多次執行,對應多個程序;不同的程序可以包含同一程式。
執行緒:程序可進一步細化為執行緒,是一個程式內部的一條執行路徑
在Java中弱化程序的概念,使用的是執行緒概念。
多個執行緒在記憶體模型中共有的區域:方法區、堆
多個執行緒私有的區域:虛擬機器棧、本地方法棧、程式計數器
Java建立執行緒的三種方法:
Thread是一個類
實現了Runnable介面,其作用為實現多執行緒
Runnable是一個介面,包含一個run()方法
1,通過繼承的方式建立
class My_Thread extends Thread{ public void run() { System.out.println(Thread.currentThread().getName()+"啟動"); } } public class Test4 { public static void main(String[] args) { My_Thread thread1 = new My_Thread(); My_Thread thread2 = new My_Thread(); /** * 啟動執行緒1 呼叫執行緒的start(),啟動此執行緒,呼叫相應的run()方法 */ thread1.start(); /** * 啟動執行緒2 一個執行緒只能夠執行一次start() */ thread2.start(); } }
2,通過介面的方式建立
class My_Thread1 implements Runnable { @Override public void run() { // TODO Auto-generated method stub System.out.println(Thread.currentThread().getName()+"啟動"); } } public class Test4 { public static void main(String[] args) { My_Thread1 my_Thread1 = new My_Thread1(); /** * 建立執行緒 */ Thread thread = new Thread(my_Thread1); Thread thread2 = new Thread(my_Thread1); /** * 啟動執行緒 */ thread.start(); thread2.start(); } }
3,使用匿名內部類建立
public class Test4 {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName()+"啟動");
}
});
}
}
Thread與Runable 的區別
Thread 和 Runnable 的相同點:都是“多執行緒的實現方式”。
Thread 和 Runnable 的不同點:
Thread 是類,而Runnable是介面;Thread本身是實現了Runnable介面的類。Runnable具有更好的擴充套件性。
Runnable還可以用於“資源的共享”。即,多個執行緒都是基於某一個Runnable物件建立的,它們會共享Runnable物件上的資源。