好程式設計師Java培訓分享Java多執行緒常見面試問題
好程式設計師Java 培訓分享 Java 多執行緒常見 面試 問題, 本篇文章 好程式設計師 小編給想要參加Java 培訓或者是自學 Java 準備面試的小夥伴講解一下 Java 面試中多執行緒常見問題,希望可以幫助小夥伴順利高薪就業。
1 、在 Java 中 CycliBarriar 和 CountdownLatch 有什麼區別 ?
這個執行緒問題主要用來檢測你是否熟悉JDK5 中的併發包。這兩個的區別是 CyclicBarrier 可以重複使用已經透過的障礙,而 CountdownLatch 不能重複使用。
2 、你將如何使用 threaddump? 你將如何分析 Threaddump?
在UNIX 中你可以使用 kill-3 ,然後 threaddump 將會列印日誌,在 windows 中你可以使用” CTRL+Break ”。非常簡單和專業的執行緒面試問題,但是如果他問你怎樣分析它,就會很棘手。
3 、你在多執行緒環境中遇到的共同的問題是什麼 ? 你是怎麼解決它的 ?
多執行緒和併發程式中常遇到的有Memory-interface 、競爭條件、死鎖、活鎖和飢餓。問題是沒有止境的,如果你弄錯了,將很難發現和除錯。這是大多數基於面試的,而不是基於實際應用的 Java 執行緒問題。
4 、為什麼我們呼叫 start() 方法時會執行 run() 方法,為什麼我們不能直接呼叫 run() 方法 ?
這是另一個非常經典的java 多執行緒面試問題。這也是我剛開始寫執行緒程式時候的困惑。現在這個問題通常在電話面試或者是在初中級 Java 面試的第一輪被問到。這個問題的回答應該是這樣的,當你呼叫 start() 方法時你將建立新的執行緒,並且執行在 run() 方法裡的程式碼。但是如果你直接呼叫 run() 方法,它不會建立新的執行緒也不會執行呼叫執行緒的程式碼。
5 、什麼是不可變物件,它對寫併發應用有什麼幫助 ?
另一個多執行緒經典面試問題,並不直接跟執行緒有關,但間接幫助很多。這個java 面試問題可以變的非常棘手,如果他要求你寫一個不可變物件,或者問你為什麼 String 是不可變的。
6 、 Java 中你怎樣喚醒一個阻塞的執行緒 ?
這是個關於執行緒和阻塞的棘手的問題,它有很多解決方法。如果執行緒遇到了IO 阻塞,我並且不認為有一種方法可以中止執行緒。如果執行緒因為呼叫 wait() 、 sleep() 、或者 join() 方法而導致的阻塞,你可以中斷執行緒,並且透過丟擲 InterruptedException 來喚醒它。
7 、補充的其它幾個問題:
1) 在 java 中綠色執行緒和本地執行緒區別 ?
2) 執行緒與程式的區別 ?
3) 什麼是多執行緒中的上下文切換 ?
4) 死鎖與活鎖的區別,死鎖與餡餅的區別 ?
5)Java 中用到的執行緒排程演算法是什麼 ?
6) 在 Java 中什麼是執行緒排程 ?
7) 線上程中你怎麼處理不可捕捉異常 ?
8) 什麼是執行緒組,為什麼在 Java 中不推薦使用 ?
9) 為什麼使用 Executor 框架比使用應用建立和管理執行緒好 ?
10) 在 Java 中 Executor 和 Executors 的區別 ?
11) 如何在 Windows 和 Linux 上查詢哪個執行緒使用的 CPU 時間最長 ?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2717674/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java教程分享Java多執行緒常見面試題程式設計師Java執行緒面試題
- 好程式設計師Java培訓分享Java多執行緒程式設計師Java執行緒
- 好程式設計師Java培訓分享Java多執行緒併發程式設計師Java執行緒
- 好程式設計師分享:Java面試題常見問題程式設計師Java面試題
- 好程式設計師Java教程分享:Java工程師常見面試題程式設計師Java工程師面試題
- 好程式設計師Java培訓分享Mybatis面試題集合程式設計師JavaMyBatis面試題
- 好程式設計師Java培訓分享Java面試題集合篇一程式設計師Java面試題
- 好程式設計師Java培訓分享Java面試題集合篇二程式設計師Java面試題
- 好程式設計師Java培訓分享Java中級面試題合集程式設計師Java面試題
- 好程式設計師Java培訓分享Java面試題之Java集合篇三程式設計師Java面試題
- 好程式設計師Java培訓分享Java效能常見命令有哪些程式設計師Java
- 好程式設計師Java教程分享XML常見面試題程式設計師JavaXML面試題
- 好程式設計師Java培訓分享22道Spring Boot面試題!程式設計師JavaSpring Boot面試題
- 好程式設計師Java教程分享Java面試常見技術難題程式設計師Java面試
- 好程式設計師Java教程分享JavaScript常見面試題一程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題五程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題四程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題三程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題二程式設計師JavaScript面試題
- Java程式設計師面試常見問題Java程式設計師面試
- 好程式設計師Java培訓分享面試Java的注意事項程式設計師Java面試
- 好程式設計師Java培訓分享面試Java要注意什麼程式設計師Java面試
- 好程式設計師Java培訓分享四種常用執行緒池介紹程式設計師Java執行緒
- 好程式設計師Java培訓分享實用的Redis面試題一程式設計師JavaRedis面試題
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java
- 好程式設計師Java學習路線分享Spring常見面試題程式設計師JavaSpring面試題
- 好程式設計師Java培訓分享Java常見排序演算法之插入排序程式設計師Java排序演算法
- 好程式設計師Python教程分享Python常見面試問題程式設計師Python面試
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師web前端培訓分享小白學web常見的問題程式設計師Web前端
- 好程式設計師分享Java常見面試題Tomcat最佳化經驗程式設計師Java面試題Tomcat
- 好程式設計師Java培訓分享SpringBoot -YAML程式設計師JavaSpring BootYAML
- 好程式設計師web前端培訓分享Vue面試題程式設計師Web前端Vue面試題
- 好程式設計師Java培訓分享如何避開面試中的“坑”程式設計師Java面試
- 好程式設計師web前端分享常見面試題程式設計師Web前端面試題
- 好程式設計師Java培訓告訴你Java-執行緒怎麼來的?程式設計師Java執行緒
- 好程式設計師Java學習路線分享多執行緒概念程式設計師Java執行緒