第一章 Java多執行緒技能

2021-07-08 15:25:47 字數 1662 閱讀 4730

乙個程序正在執行時至少會有1個執行緒正在執行。

public

class test

}輸出結果:

main

分析: 乙個名稱叫做main的執行緒在執行main()方法中的**。

public

class

mythread

extends

thread

}分析:通過在run方法前加入synchronized關鍵字,使多個執行緒在執行run方法時以排隊的方法進行處理。當乙個現在在呼叫run前,先判斷run方法有沒有被上鎖,如果上鎖,說明有其他執行緒正在呼叫run方法,必須等其他執行緒對run方法呼叫結束後才可以執行run方法。synchronized可以在任意物件及方法上加鎖,而加鎖的這段**稱為「互斥區」或「臨界區」。

currentthread()方法可返回該**段是正在被哪個執行緒呼叫。

package mythread;

public

class

mythread

extends

thread

@override

public

void

run()

}package run;

import mythread.mythread;

public

class

run2

}輸出結果:

構造方法的列印:main

run方法的列印:thread-0

----------

package run;

import mythread.mythread;

public

class

run2

}輸出結果:

構造方法的列印:main

run方法的列印:main

isalive()的功能判斷當前的程序是否處於活動狀態

sleep()的作用是在指定的毫秒數讓當前「正在執行的執行緒」休眠,即暫停執行。這個「正在執行的執行緒」是指this.currentthread()返回的執行緒

getid()方法的作用是取得執行緒的唯一標識

interrupt()方法停止執行緒

this.interrupted()//測試當前執行緒是否已經中斷,執行後具有將狀態標誌設定為false

this.isinterrupted()//測試執行緒是否已經中斷,執行後不清除狀態標誌

使用return停止執行緒

package extthread;

public

class

mythread

extends

thread

system.out.println("timer=" + system.currenttimemillis());}}

}package test.run;

import extthread.mythread;

public

class

run

}

yield

()方法的作用是放棄當前的cpu資源,將它讓給其他的任務占用cpu,但放棄的時間不確定。

多執行緒程式設計第一章多執行緒技能

使用方式 繼承thread 本質是實現了runnable,再加幾個方法 或者實現runnable 執行時,還得套thread的殼 幾個方法 1 isalive 2 sleep 3 currentthread 4 getid 5 suspend暫停執行緒 resume恢復執行緒 6 yield當前執行...

Java多執行緒程式設計(第一章)

實現方式 1.繼承thread類 2.實現runnable介面,作為thread建構函式的target物件 thread.currentthread 用來獲取呼叫這段 的執行緒,即正在執行中的執行緒 isalive 用來判斷當前執行緒是否處於runnable狀態,也就是處於就緒和執行中的執行緒。sl...

執行緒第一章

使用多執行緒的情況 乙個程式同時執行多個任務 單執行緒可以完成,單多執行緒效率高。併發原理 執行緒排程將時間劃分為很多時間片段,盡可能均勻分配給每乙個執行緒,獲取時間片段的執行緒將被cpu執行,其餘執行緒全部等待。微觀上是 走走停停 巨集觀上都在執行,這種現象叫 併發 執行緒排程 給執行緒分配時間片...