溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

有哪些Java多線程面試題

發(fā)布時間:2021-10-29 16:57:20 來源:億速云 閱讀:103 作者:iii 欄目:編程語言

這篇文章主要講解了“有哪些Java多線程面試題”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“有哪些Java多線程面試題”吧!

1:什么是線程?

輕量級的進(jìn)程

2:線程的三個部分是?

處理機(jī)

代碼

數(shù)據(jù)

3:為什么使用多線程

使UI響應(yīng)更快

利用多處理器系統(tǒng)

簡化建模

4:代碼示例:Java中實(shí)現(xiàn)多線程的兩種方式,包括如何定義多線程,如何使用多線程

4.1實(shí)現(xiàn)Runnable接口

class Thread1 implements Runnable{
 
public void run(){
 
//run里一般寫一個while(true)循環(huán)
 
System.out.println(Runnable);
 
}
 
}

4.2繼承Thread

class Thread2 extends Thread{
 
public void run(){
 
System.out.println(extends);
 
}
 
}
public class Test{
 
public static void main(String[] a){
 
Thread1 r = new Thread1();
 
Thread t1 = new Thread(r);
 
Thread t2 = new Thread(r);
 
t1.start();
 
t2.start();
 
Thread t3 = new Thread2();
 
t3.start();
 
}
 
}

5:如何實(shí)現(xiàn)線程的調(diào)度?如何暫停一個線程的運(yùn)行

調(diào)度用wait和notify

sleep()

6:什么是線程的優(yōu)先級

判斷哪個線程先執(zhí)行的級別

7:簡述sleep方法和wait方法的功能和區(qū)別

sleep是讓線程休眠一段時間

wait是讓線程掛起

8:什么是守候線程

隱藏在后臺持續(xù)運(yùn)行的線程

9:什么是臨界資源

指多個線程共享的資源

10:什么是互斥鎖,Java中如何實(shí)現(xiàn)

用來保證在任一時刻只能有一個線程來訪問臨界資源的那個標(biāo)記

用在對象前面限制一段代碼的執(zhí)行

用在方法聲明中,表示整個方法為同步方法。

11:什么是死鎖?如何避免?

如果程序中有多個線程競爭多個資源,就可能會產(chǎn)生死鎖。當(dāng)一個線程等待

由另一個線程持有的鎖,而后者正在等待已被第一個線程持 有的鎖時,就會

發(fā)生死鎖。

要避免死鎖,應(yīng)該確保在獲取多個鎖時,在所有的線程中都以相同的順序獲取鎖。

盡量少用臨界資源

12:簡述wait和notify,notifyAll的使用

被鎖定的對象可以調(diào)用wait()方法,這將導(dǎo)致當(dāng)前線程被阻塞并放棄該對象

的互斥鎖,即解除了wait()方法的當(dāng)前對象的鎖定狀態(tài),其 他的線程就有機(jī)

會訪問該對象。

notify使等待隊列上的一個線程離開阻塞狀態(tài)

notifyAll使等待隊列上的所有線程離開阻塞狀態(tài)

13:什么是url?基本的格式是?

統(tǒng)一資源定位器

Http://www.163.com:port

14:簡述IP,Port,TCP的基本功能

IP代表網(wǎng)絡(luò)位置

Port代表端口號

TCP可保證不同廠家生產(chǎn)的計算機(jī)能在共同網(wǎng)絡(luò)環(huán)境下運(yùn)行,解決異構(gòu)網(wǎng)通信問題,是目前網(wǎng)絡(luò)通信的基本協(xié)議

15:簡述Java網(wǎng)絡(luò)模型的基本功能

描述服務(wù)端和客戶端的連接過程

16:簡述Java網(wǎng)絡(luò)編程究竟做些什么?如何做?

1.建立連接

2.準(zhǔn)備輸出的數(shù)據(jù),流式輸出

3.流式輸入,編程業(yè)務(wù)需要的格式

4.關(guān)閉連接

服務(wù)器分配一個端口號。如果客戶請求一個連接,服務(wù)器使用accept()方法打開socket連接。

客戶在host的port端口建立連接。

服務(wù)器和客戶使用InputStream和OutputStream進(jìn)行通信。

17:代碼示例:基于Socket編程

try {
 
ServerSocket s = new ServerSocket(8888);
 
while (true) {
 
Socket s1 = s.accept();
 
OutputStream os = s1.getOutputStream();
 
DataOutputStream dos = new DataOutputStream(os);
 
dos.writeUTF("Hello," +s1.getInetAddress() + "port#" + s1.getPort() + "\nbye!");
 
dos.close();
 
s1.close();
 
}
 
}catch (IOException e) {
 
System.out.println("程序運(yùn)行出錯:" + e);
 
}

18:代碼示例:基于UDP編程

19:TCP和UDP區(qū)別

TCP能保證傳輸內(nèi)容的完整和準(zhǔn)確,UDP不能

感謝各位的閱讀,以上就是“有哪些Java多線程面試題”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對有哪些Java多線程面試題這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI