-
Actor.java:
public class Actor extends Thread {
? ?@Override
? ?public void run() {
? ? ? ?super.run();
? ? ? ?System.out.println(getName()+"是一個(gè)演員!");
? ? ? ?int count = 0;
? ? ? ?System.out.println(getName()+"登臺(tái)演出了"+ (++count) +"次!");
? ? ? ?System.out.println(getName()+"演出結(jié)束!");
? ?}
? ?public static void main(String[] args) {
? ? ? ?Thread actor = new Actor();
? ? ? ?actor.setName("Gwoniu");
? ? ? ?actor.start();
? ?}
}?
查看全部 -
隋唐演義:
?
查看全部 -
1、Java對(duì)線程的支持
????
????????????
2、線程的創(chuàng)建和啟動(dòng)
3、線程的常用方法
4、如何停止線程
查看全部 -
線程->進(jìn)程
線程:
????1、互斥
????2、同步
查看全部 -
什么時(shí)候用Thread創(chuàng)建線程 什么時(shí)候又用Running接口創(chuàng)建線程呢
由于java是單繼承的語(yǔ)言,所以在已經(jīng)繼承了其他類又想同時(shí)實(shí)現(xiàn)線程操作的時(shí)候就可以實(shí)現(xiàn)runable接口。如下代碼所示,實(shí)現(xiàn)了runable接口的類(runner1是這個(gè)類的實(shí)例)在開啟新線程的時(shí)候還是需要thread來(lái)輔助的
Thread thread1 = new Thread(runner1);
?thread1.start();
查看全部 -
線程常用方法
查看全部 -
Thread
查看全部 -
死鎖-------
?
查看全部 -
Thread常用方法
查看全部 -
Thread的常用方法
查看全部 -
Thread常用方法
查看全部 -
線程常用方法
查看全部 -
thread 類
runnable接口
lang包
run方法
?
查看全部 -
stop方法已經(jīng)不再使用,通過(guò)設(shè)置退出旗標(biāo)進(jìn)行線程的停止
查看全部 -
Concurrent
查看全部 -
Locks & Condition
查看全部 -
Java Memory Mode
查看全部 -
互斥與同步
查看全部 -
synchronized
查看全部 -
java線程中start和run方法的區(qū)別?
Start:
???? 用start方法來(lái)啟動(dòng)線程,真正實(shí)現(xiàn)了多線程運(yùn)行,這時(shí)無(wú)需等待run方法體代碼執(zhí)行完畢而直接繼續(xù)執(zhí)行下面的代碼。通過(guò)調(diào)用Thread類的 start()方法來(lái)啟動(dòng)一個(gè)線程,這時(shí)此線程處于就緒(可運(yùn)行)狀態(tài),并沒有運(yùn)行,一旦得到spu時(shí)間片,就開始執(zhí)行run()方法,這里方法 run()稱為線程體,它包含了要執(zhí)行的這個(gè)線程的內(nèi)容,Run方法運(yùn)行結(jié)束,此線程隨即終止。Run:
???? run()方法只是類的一個(gè)普通方法而已,如果直接調(diào)用Run方法,程序中依然只有主線程這一個(gè)線程,其程序執(zhí)行路徑還是只有一條,還是要順序執(zhí)行,還是要等待run方法體執(zhí)行完畢后才可繼續(xù)執(zhí)行下面的代碼,這樣就沒有達(dá)到寫線程的目的。總結(jié):調(diào)用start方法方可啟動(dòng)線程,而run方法只是thread的一個(gè)普通方法調(diào)用,還是在主線程里執(zhí)行。
在同一時(shí)間,同一處理器或同一個(gè)核只能運(yùn)行一條線程,當(dāng)一條線程休眠之后,另一條線程才獲得了我們處理器的時(shí)間
2.Runnable接口之中沒有g(shù)etName方法,我們可以使用Thread的靜態(tài)方法currentThreat().getName()獲取該對(duì)象的名字。
3.若實(shí)現(xiàn)接口通過(guò)Thread.currentThread().getName()方法獲取當(dāng)前線程名稱,繼承Thread則getName()方法獲取當(dāng)前線程名稱
繼承Thread和實(shí)現(xiàn)Runnable其區(qū)別主要在于共享數(shù)據(jù),Runnable接口是可以共享數(shù)據(jù)的,多個(gè)Thread可以同時(shí)加載一個(gè)Runnable,當(dāng)各自Thread獲得CPU時(shí)間片的時(shí)候開始運(yùn)行Runnable,Runnable里面的資源被共享。
不管是繼承Thread還是實(shí)現(xiàn)Runnable接口我們都可以創(chuàng)建線程。在實(shí)際開發(fā)中大多數(shù)情況下是實(shí)現(xiàn)Runnable接口的,因?yàn)樗梢怨蚕頂?shù)據(jù)。
查看全部 -
資源競(jìng)爭(zhēng).
查看全部 -
資源競(jìng)爭(zhēng).
查看全部 -
valatile 解決字段可見性
查看全部
舉報(bào)