本文目錄一覽:
面試問 關於JAVA多線程,從哪些方面回答呢
應用場景
即作用是什麼,哪些場景下需要,能解決哪類問題,通常情況下面試官更關心這個。
實現方式
除了什麼時候用,你還得告訴他怎麼用。什麼Thread、Runnable、線程池之類的丟上去,這些比較基礎。
線程同步
這個問題其實比較複雜。線程同步的概念最易於理解的案例就是在生產者消費者模式中的應用,你可以跟他講講這個。當然,這個涉及到對象鎖基本就夠了。
然後你再說說線程同步的幾個方式,synchronized(對象、方法)、Lock、wait/notify之類的,說說它們的區別和應用場景。
最後提一提JDK中那些容器的線程同步問題,這樣基本的使用算是不會有大問題了。
上面的東西你都能講清楚,你多線程上的內容也就回個7788了,這塊兒的面試基本沒問題了
java 面試 什麼是多線程
多線程是指一個應用程序同時執行多個任務,一般來說一個任務就是一個線程 ,而一個應用程序有一個以上的線程我們稱之為多線程。
補充內容
線程與進程的區別:
進程(程序):是靜態概念,一個class文件、一個exe文件
線程:是一個程序裡面不同的執行路徑
舉例說明:
public class ThreadTest {
public static void m1() {
System.out.println(“m1”);
}
public static void m2() {
System.out.println(“m2”);
}
public static void m3() {
m1();
m2();
}
public static void main(String[] args) {
m3();
}}
程序中的路徑或者線程也就是main方法(共一條):
java面試 什麼是多線程
多線程就是把一堆不需要依次做的工作分給幾個人並行做 加快工作效率;
比如你要壓縮10個tar包 一個tar包需要1分鐘 不開線程要10分鐘 你開10個線程1分鐘就做完了
java面試什麼是多線程
線程定義比較抽象,簡單的說就是一個代碼執行流。許多執行流可以混合在一起由CPU調度。線程是允許各種任務交互執行的方式。
Java的線程在操作系統的實現模式依系統不同而不同,可能是系統級別的進程或線程,但對於程序員來說並沒有影響。
任務交互的一個好處是增加程序響應。如一個界面程序執行一段耗時的資料庫查詢,使用單獨的線程可以讓界面依然響應用戶的其他輸入,而單線程只能等待查詢結束再處理。
JVM以及操作系統會優先處理優先順序別高的線程,但不代表這些線程一定會先完成。設定優先順序只能建議系統更快的處理,而不能強制。
另外,在運行時,並沒有按照函數分界,而是按照機器碼/彙編碼分界。也就是說不保證任何一段代碼是被完整而不打斷的執行的(除非你已經使用同步手段)。正由於如此,各種線程同步的方法應運而生。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291620.html