線程基礎內容01

4.線程基礎

4.1計算機中的進程

計算機
進程

電腦中,軟件的運行,都會產生一個進程或多個進程與之對應,每一個進程都代表了一組計算機資源的集合,這些計算機資源就是提供給這個軟件在運行的時候使用的。

一個進程中,還可以有一個或多個線程

多線程訪問某個共享資源可能出現線程安全問題,此時可以使用synchronized關鍵字來實現線程同步,
從而避免安全問題出現,但會影響性能,甚至出現死鎖

具體到JVM中的線程,首先線程是有分類的,前臺線程 只有一個叫做main的線程

4.2進程中的線程

進程只能拿到計算機中的資源,並不能執行代碼。而進程中創建出來的線程,就可以執行代碼
從而避免安全問題出現,但會影響性能,甚至出現死鎖

4.3線程中三個重要的組成部分

code cpu date
1.
2.實現Running接口

4.4

4.8 cpu時間片

每一個線程在使用cpu的時候,都只能使用很短的時間,因爲不能讓一個線程把cpu給獨佔了,
cpu是所有程序代碼共享的計算機資源,所以一個線程在使用完後必須把cpu資源讓出去。

4.9 線程狀態

在Thread類中,定義了一個枚舉狀態

TIMED-WAITING "有限期"等待狀態
特點:線程存活
isAlive方法判斷返回的是true

4.10終止線程

可以使用一個標記變量結束

4.11interrupt方法

該方法可以打斷一個線程阻塞的狀態。可以調用Thread【靜態方法】Thread

package com.day46;

public class ThreadTest8 {

	public static void main(String[] args) {
		Thread t = new Thread() {
			@Override 
			public void run() {
				**while(!this.isInterrupted())** {
					System.out.println("hello");
					/*try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						
						e.printStackTrace();
					}*/
				}
			}
		};
		t.start();
		
		try {
			Thread.sleep(000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}

interrupted的三種類似方法
//打斷線程阻塞狀態的方法,其實就是改變“打斷標識”

public void interrput(){}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章