java面試題五
1. 多線程有幾種實現方法?同步有幾種實現方法?
多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口
同步的實現方面有兩種,分別是synchronized,wait與notify
wait():使一個線程處於等待狀態,並且釋放所持有的對象的lock。
sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。
notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。
Allnotity():喚醒所有處入等待狀態的線程,注意並不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。
2.啓動一個線程是用run()還是start()? .
啓動一個線程是調用start()方法,使線程就緒狀態,以後可以被調度爲運行狀態,一個線程必須關聯一些具體的執行代碼,run()方法是該線程所關聯的執行代碼。
3.當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
分幾種情況:
1.其他方法前是否加了synchronized關鍵字,如果沒加,則能。
2.如果這個方法內部調用了wait,則可以進入其他synchronized方法。
3.如果其他個方法都加了synchronized關鍵字,並且內部沒有調用wait,則不能。
4.如果其他方法是static,它用的同步鎖是當前類的字節碼,與非靜態的方法不能同步,因爲非靜態的方法用的是this。
4.線程的基本概念、線程的基本狀態以及狀態之間的關係
一個程序中可以有多條執行線索同時執行,一個線程就是程序中的一條執行線索,每個線程上都關聯有要執行的代碼,即可以有多段程序代碼同時運行,每個程序至少都有一個線程,即main方法執行的那個線程。如果只是一個cpu,它怎麼能夠同時執行多段程序呢?這是從宏觀上來看的,cpu一會執行a線索,一會執行 b線索,切換時間很快,給人的感覺是a,b在同時執行,好比大家在同一個辦公室上網,只有一條鏈接到外部網線,其實,這條網線一會爲a傳數據,一會爲b傳數據,由於切換時間很短暫,所以,大家感覺都在同時上網。
狀態:就緒,運行,synchronize阻塞,wait和sleep掛起,結束。wait必須在synchronized內部調用。
調用線程的start方法後線程進入就緒狀態,線程調度系統將就緒狀態的線程轉爲運行狀態,遇到synchronized語句時,由運行狀態轉爲阻塞,當 synchronized獲得鎖後,由阻塞轉爲運行,在這種情況可以調用wait方法轉爲掛起狀態,當線程關聯的代碼執行完後,線程變爲結束狀態。
5.簡述synchronized和的異同 ?
主要相同點:Lock能完成synchronized所實現的所有功能
主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,並且必須在finally從句中釋放。Lock還有更強大的功能,例如,它的tryLock方法可以非阻塞方式去拿鎖。
6. 同步和異步有何異同,在什麼情況下分別使用他們?舉例說明。
如果數據將在線程間共享。例如正在寫的數據以後可能被另一個線程讀到,或者正在讀的數據可能已經被另一個線程寫過了,那麼這些數據就是共享數據,必須進行同步存取。
當應用程序在對象上調用了一個需要花費很長時間來執行的方法,並且不希望讓程序等待方法的返回時,就應該使用異步編程,在很多情況下采用異步途徑往往更有效率。
4.請說出你所知道的線程同步的.方法。
wait():使一個線程處於等待狀態,並且釋放所持有的對象的lock。
sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。
notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。
Allnotity():喚醒所有處入等待狀態的線程,注意並不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。
5.線程的基本概念、線程的基本狀態以及狀態之間的關係
線程指在程序執行過程中,能夠執行程序代碼的一個執行單位,每個程序至少都有一個線程,也就是程序本身。
Java中的線程有四種狀態分別是:運行、就緒、掛起、結束。
-
2022年面試的自我評價通用15篇
在我們平凡的日常裏,我們經常遇到需要寫自我評價的情況,自我評價在很大程度上還會自我督促,促使我們維持自我的一致性。怎樣寫自我評價才合理、得體呢?下面是小編爲大家收集的2022年面試的自我評價,歡迎大家借鑑與參考,希望對大家有所幫助。2022年面試的自我評價1面...
-
文藝部面試三分鐘8篇
文藝部面試三分鐘1我對這個世界從來都不缺少幻想,但幻想與現實的巨大差距,促使我不得不打起十二分的精神與熱情投入到追求理想的工作去。我喜歡挑戰,喜歡爲人所不能,喜歡打破墨守成規的.舊俗,因爲,我有着一顆永不服輸的心!在高中時期,我就通過面試當選了學校文藝部部...
-
優秀面試自我評價集錦8篇
在平日的學習、工作和生活裏,我們很多時候都不得不用到自我評價,自我評價和人生價值選擇有着密切的關係。你知道自我評價怎樣寫才規範嗎?以下是小編精心整理的優秀面試自我評價,歡迎閱讀,希望大家能夠喜歡。優秀面試自我評價1我是一個開朗活潑、意志力較堅強且不輕...
-
單位面試通知書(3篇)
在現實社會中,我們都跟通知有着直接或間接的聯繫,通知適用於批轉下級機關的公文,轉發上級機關和不相隸屬機關的公文。相信很多朋友都對寫通知感到非常苦惱吧,下面是小編精心整理的單位面試通知書,僅供參考,希望能夠幫助到大家。單位面試通知書1各招聘單位,各應聘考生:...