【Java面試題】Java面試之多執行緒!

六星_研鑫發表於2020-07-23


歡迎加入我們的學習基地,免費獲取最新BATJ面試題和2020最新簡歷模板( 925050116)!

 

1:什麼是執行緒?


輕量級的程式


2:執行緒的三個部分是?


處理機


程式碼


資料


3:為什麼使用多執行緒


使UI響應更快


利用多處理器系統


簡化建模


4:程式碼示例:Java中實現多執行緒的兩種方式,包括如何定義多執行緒,如何使用多執行緒


4.1實現Runnable介面


class Thread1 implements Runnable{
 
public void run(){
 
//run裡一般寫一個while(true)迴圈
 
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:如何實現執行緒的排程?如何暫停一個執行緒的執行


排程用wait和notify


sleep()


6:什麼是執行緒的優先順序


判斷哪個執行緒先執行的級別


7:簡述sleep方法和wait方法的功能和區別


sleep是讓執行緒休眠一段時間


wait是讓執行緒掛起


8:什麼是守候執行緒


隱藏在後臺持續執行的執行緒


9:什麼是臨界資源


指多個執行緒共享的資源


10:什麼是互斥鎖,Java中如何實現


用來保證在任一時刻只能有一個執行緒來訪問臨界資源的那個標記


用在物件前面限制一段程式碼的執行


用在方法宣告中,表示整個方法為同步方法。


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


如果程式中有多個執行緒競爭多個資源,就可能會產生死鎖。當一個執行緒等待


由另一個執行緒持有的鎖,而後者正在等待已被第一個執行緒持 有的鎖時,就會


發生死鎖。


要避免死鎖,應該確保在獲取多個鎖時,在所有的執行緒中都以相同的順序獲取鎖。


儘量少用臨界資源


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


被鎖定的物件可以呼叫wait()方法,這將導致當前執行緒被阻塞並放棄該物件


的互斥鎖,即解除了wait()方法的當前物件的鎖定狀態,其 他的執行緒就有機


會訪問該物件。


notify使等待佇列上的一個執行緒離開阻塞狀態


notifyAll使等待佇列上的所有執行緒離開阻塞狀態


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


統一資源定位器



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


IP代表網路位置


Port代表埠號


TCP可保證不同廠家生產的計算機能在共同網路環境下執行,解決異構網通訊問題,是目前網路通訊的基本協議


15:簡述Java網路模型的基本功能


描述服務端和客戶端的連線過程


16:簡述Java網路程式設計究竟做些什麼?如何做?


1.建立連線


2.準備輸出的資料,流式輸出


3.流式輸入,程式設計業務需要的格式


4.關閉連線


伺服器分配一個埠號。如果客戶請求一個連線,伺服器使用accept()方法開啟socket連線。


客戶在host的port埠建立連線。


伺服器和客戶使用InputStream和OutputStream進行通訊。


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("程式執行出錯:" + e);
 
}


18:程式碼示例:基於UDP程式設計


19:TCP和UDP區別


TCP能保證傳輸內容的完整和準確,UDP不能

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69977571/viewspace-2706514/,如需轉載,請註明出處,否則將追究法律責任。

相關文章