<xmp id="isueg"><nav id="isueg"></nav>
  • <dd id="isueg"><nav id="isueg"></nav></dd>
    <xmp id="isueg">
  • <center id="isueg"></center>
    <nav id="isueg"><code id="isueg"></code></nav>
    專注Java教育12年 全國咨詢/投訴熱線:400-8080-105

    首頁 hot資訊 高并發面試題及答案

    高并發面試題及答案

    更新時間:2021-08-13 11:32 來源:動力節點 瀏覽88次

    1.死鎖,以及解決死鎖

    死鎖產生的四個必要條件

    互斥條件:資源是獨占的且排他使用,進程互斥使用資源,即任意時刻一個資源只能給一個進程使用,其他進程若申請一個資源,而該資源被另一進程占有時,則申請者等待直到資源被占有者釋放。

    不可剝奪條件:進程所獲得的資源在未使用完畢之前,不被其他進程強行剝奪,而只能由獲得該資源的進程資源釋放。

    請求和保持條件:進程每次申請它所需要的一部分資源,在申請新的資源的同時,繼續占用已分配到的資源。

    循環等待條件:在發生死鎖時必然存在一個進程等待隊列{P1,P2,…,Pn},其中P1等待P2占有的資源,P2等待P3占有的資源,…,Pn等待P1占有的資源,形成一個進程等待環路,環路中每一個進程所占有的資源同時被另一個申請,也就是前一個進程占有后一個進程所深情地資源。

    解決死鎖

    一是死鎖預防,就是不讓上面的四個條件同時成立。

    二是,合理分配資源。

    三是使用銀行家算法,如果該進程請求的資源操作系統剩余量可以滿足,那么就分配。

    2.高并發的業務架構是

    前端:異步請求+資源靜態化+cdn

    后端:請求隊列+輪詢分發+負載均衡+共享緩存

    數據層:redis緩存+數據分表+寫隊列

    存儲:raid陣列+熱備

    網絡:dns輪詢+DDOS攻擊防護

    3.如何測試并發量?

    可以使用apache提供的ab工具測試。

    4.Nginx反向代理為什么能夠提升服務器性能?

    對于后端是動態服務來說,比如Java和PHP。這類服務器(如JBoss和PHP-FPM)的IO處理能力往往不高。Nginx有個好處是它會把Request在讀取完整之前buffer住,這樣交給后端的就是一個完整的HTTP請求,從而提高后端的效率,而不是斷斷續續的傳遞(互聯網上連接速度一般比較慢)。同樣,Nginx也可以把response給buffer住,同樣也是減輕后端的壓力。

    5.solr怎么設置搜索結果排名靠前?

    可以設置文檔中域的boost值,boost值越高,計算出來的相關度得分就越高,排名也就越靠前。此方法可以把熱點商品或者推廣商品的排名提高。

    6.solr中IK分詞器原理是什么?

    Ik分詞器的分詞原理本質上是詞典分詞。先在內存中初始化一個詞典,然后在分詞過程中挨個讀取字符,和字典中的字符相匹配,把文檔中的所有的詞語拆分出來的過程。

    7.什么是webService?

    WebService是一種跨編程語言和跨操作系統平臺的遠程調用技術。所謂跨編程語言和跨操作平臺,就是說服務端程序采用java編寫,客戶端程序則可以采用其他編程語言編寫.跨操作系統平臺則是指服務端程序和客戶端程序可以在不同的操作系統上。

    8.什么是java內存模型

    java內存模型定義了java虛擬機在計算機內存中的工作方式。JMM決定了一個線程對共享變量的寫入何時對另一個線程可見。從抽象的角度來看,JMM定義了線程和主內存之間的抽象關系:線程之間的共享變量存儲在主內存中,每一個線程都有一個私有的本地內存,本地內存中存儲了該線程以讀/寫共享變量的副本。

    9. 什么是線程安全?

    如果你的代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼。如果每次運行結果和單線程運行的結果都是一樣的,而且其他變量的值也和預期的是一樣的,就是線程安全的。一個線程安全的計數器類的同一個實例對象在被多個線程使用的情況下也不會出現計算失誤。

    10. java中如何停止一個線程

    java提供了很豐富的API但沒有為停止線程提供API。JDK1.0本來有一些像stop()、suspend()和resume()的控制方法但是由于潛在的死鎖威脅,因此在后續的JDK版本中他們被摒棄了,之后Java API的設計者就沒有提供一個兼容且線程安全的方法來停止一個線程。當run()或者call()方法執行完的時候線程會自動結束,如果要手動結束一個線程,你可以使用volatile布爾變量來推出run()方法的循環或者是取消任務來中斷線程

    提交申請后,顧問老師會電話與您溝通安排學習

    免費課程推薦 >>
    技術文檔推薦 >>

    返回頂部
    亚洲AV女人的天堂在线观看