多執行緒 四種建立方式

2021-10-10 10:01:46 字數 1859 閱讀 4012

public

class

threadestablish1}}

}.start()

;//主線程

for(

int i =

0;i <

100;i++)}

}}//1.建立乙個實現了thread類的子類

class

subthread

extends

thread}}

}

注意點:

如果自己手動呼叫run()方法,那麼就只是普通方法,沒有啟動多執行緒模式。

run()方法由jvm呼叫,什麼時候呼叫,執行的過程控制都有作業系統的cpu排程決定。

想要啟動多執行緒,必須呼叫start方法。

乙個執行緒物件只能呼叫一次start()方法啟動,如果重複呼叫了,則將丟擲以上的異常「illegalthreadstateexception」。

public

class

threadestablish2

}//1.定義子類,實現runnable介面。

class

threadrunnable

implements

runnable}}

}

問題一:繼承方式和實現方式的聯絡與區別?

兩者聯絡:public class thread extends object implements runnable

區別:

繼承thread:執行緒執行**存放在thread子類run方法中。

實現runnable:執行緒執行**存放在runnable介面的實現類重寫的run方法中。

實現方式的好處:

避免了單繼承的侷限性

多個執行緒可以共享同乙個介面實現類的物件,非常適合多個相同執行緒來處理同乙份資源(執行緒的共享資料)。

public

class

threadestablish3

catch

(interruptedexception e)

catch

(executionexception e)}}

//1.建立實現了callable介面的實現類

class

call

implements

callable

}return sum;

}}

**面試題:**如何理解實現了callable介面的方式建立執行緒 比 實現runnable介面的方式建立執行緒 要好?

call()相比run()方法,可以有返回值

call()方法可以丟擲異常

call()方法支援泛型的返回值

2.多執行緒的解決方案:提前建立好多個執行緒,放入執行緒池中,使用時直接獲取,使用完放回池中。可以避免頻繁建立銷毀、實現重複利用。類似生活中的公共交通工具。

3.使用執行緒池的好處:

提高響應速度(減少了建立新執行緒的時間)

降低資源消耗(重複利用執行緒池中線程,不需要每次都建立)

便於執行緒管理:corepoolsize:核心池的大小、maximumpoolsize:最大執行緒數、

keepalivetime:執行緒沒有任務時最多保持多長時間後會終止

public

class

threadestablish4

}class

runimplements

runnable

}// }

}}

@僅為julius個人學習筆記

多執行緒 四種建立方式(一)

舉例 列印1 100的偶數 方法一 繼承thread類 public class testthread01 class numthread01 extends thread 方法二 實現runnable介面 建立執行緒的方式二 實現runnable介面 public class testthread...

多執行緒的四種建立方式

方式1 繼承於thread類 建立乙個繼承於thead類的子類 重寫thread類的run方法 建立thread的物件 通過該物件呼叫start class aextends thread 在main方法中直接呼叫start 方法 public static void main string arg...

多執行緒之四種建立方式

1前言 沒有前言 2 不得不提的乙個類 thread 2.1thread類的特性 2.2thread類的構造器 2.3thread類的有關方法 3建立執行緒的4中方式 3.1 學習建立執行緒的方式前必須注意的地方 3.2 方式一 繼承thread類 類1 public class mythread ...