1. 程式人生 > >執行緒及建立執行緒的三種方法

執行緒及建立執行緒的三種方法

基本概念

程式:是為了完成特定任務,用某種語言編寫的一組指令的集合.即指一段靜態程式碼。

程序:程序是程式的一次執行過程,是系統進行資源分配和處理機排程的一個獨立單位。

程式是一個靜態的概念,程序是一個動態的概念。一個程式多次執行,對應多個程序;不同的程序可以包含同一程式。

執行緒:程序可進一步細化為執行緒,是一個程式內部的一條執行路徑

 

在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物件上的資源。