91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

      關注千鋒學習站小程序
      隨時隨地免費學習課程

      當前位置:首頁  >  應聘面試  >  Java面試題  > java面試題:java知識點合集(十四)

      java面試題:java知識點合集(十四)

      來源:千鋒教育
      發(fā)布人:wjy
      時間: 2022-07-14 17:16:00 1657790160

        一. 什么是上下文切換?

        多線程編程中一般線程的個數(shù)都大于 CPU 核心的個數(shù),而一個 CPU 核心在任意時刻只能被一個線程使用。為了讓這些線程都能得到有效執(zhí)行,CPU 采取的策略是為每個線程分配時間片并輪轉的形式。當一個線程的時間片用完的時候就會重新處于就緒狀態(tài)讓給其他線程使用,這個過程就屬于一次上下文切換。

      java面試題:java知識點合集

        概括來說就是:

        當前任務在執(zhí)行完 CPU 時間片切換到另一個任務之前會先保存自己的狀態(tài),以便下次再切換回這個任務時,可以再加載這個任務的狀態(tài)。任務從保存到再加載的過程就是一次上下文切換。

        上下文切換通常是計算密集型的。也就是說,它需要相當可觀的處理器時間,在每秒幾十上百次的切換中,每次切換都需要納秒量級的時間。所以,上下文切換對系統(tǒng)來說意味著消耗大量的 CPU 時間,事實上,可能是操作系統(tǒng)中時間消耗最大的操作。

        Linux 相比與其他操作系統(tǒng)(包括其他類 Unix 系統(tǒng))有很多的優(yōu)點,其中有一項就是,其上下文切換和模式切換的時間消耗非常少。

        二. 什么是CAS

        1. CAS實現(xiàn)原理

        CAS是Compare And Swap的縮寫,意思就是比較并交換。它是無鎖化的實現(xiàn),是經(jīng)典的樂觀鎖。

        synchronized是一種悲觀鎖,會導致其它所有需要鎖的線程掛起,等待持有鎖的線程釋放鎖。

        樂觀鎖就是不加鎖而是假設沒有沖突而去完成某項操作,如果因為沖突失敗就重試,直到成功為止。樂觀鎖的機制就是CAS。

        CAS操作很簡單,它包含三個操作數(shù):內存地址V、預期原值A、新值B。先比較內存地址V處的值和預期原值A是否相等,如果相等就將內存地址V處更新為新值B。在配合循環(huán)使用時,若CAS操作失敗,會循環(huán)執(zhí)行或到達某個終止處。此操作配合循環(huán)使用時,又稱為自旋鎖的實現(xiàn)方式。

        2. CAS存在的問題

        2.1 ABA問題

        解決辦法:

        加時間戳

        加版本號

        2.2 循環(huán)開銷大

        CAS是樂觀鎖,如果線程比較多,資源搶占激烈,命中率低的情況下,不斷的循環(huán)會不斷的消耗資源。實際上,可以設置最大循環(huán)數(shù),達到最大循環(huán)數(shù)還沒有占有資源就自動放棄,避免無限的循環(huán)。

        2.3 只能保證一個共享變量的原子操作

        三. 創(chuàng)建線程池有哪幾個核心參數(shù)? 如何合理配置線程池的大小?

        1. 核心參數(shù)

      java面試題:java知識點合集666

        2. 核心說明

        1當線程池中線程數(shù)量小于 corePoolSize 則創(chuàng)建線程,并處理請求。

        2當線程池中線程數(shù)量大于等于 corePoolSize 時,則把請求放入 workQueue 中,隨著線程池 中的核心線程們不斷執(zhí)行任務,只要線程池中有空閑的核心線程,線程池就從 workQueue 中取 任務并處理。

        3當 workQueue 已存滿,放不下新任務時則新建非核心線程入池,并處理請求直到線程數(shù)目 達到 maximumPoolSize(最大線程數(shù)量設置值)。

        4如果線程池中線程數(shù)大于 maximumPoolSize 則使用 RejectedExecutionHandler 來進行任 務拒絕處理。

        3. 線程池大小分配

        線程池究竟設置多大要看你的線程池執(zhí)行的什么任務了,CPU密集型、IO密集型、混合型,任 務類型不同,設置的方式也不一樣。

        任務一般分為:CPU密集型、IO密集型、混合型,對于不同類型的任務需要分配不同大小的線 程池。

        3.1 CPU密集型

        盡量使用較小的線程池,一般Cpu核心數(shù)+1

        3.2 IO密集型

        方法一:可以使用較大的線程池,一般CPU核心數(shù) * 2

        方法二:(線程等待時間與線程CPU時間之比 + 1)* CPU數(shù)目

        3.3 混合型

        可以將任務分為CPU密集型和IO密集型,然后分別使用不同的線程池去處理,按情況而定。

        更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術的好程序員班,高品質課程助力你實現(xiàn)java程序員夢想。

      tags:
      聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
      10年以上業(yè)內強師集結,手把手帶你蛻變精英
      請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
      免費領取
      今日已有369人領取成功
      劉同學 138****2860 剛剛成功領取
      王同學 131****2015 剛剛成功領取
      張同學 133****4652 剛剛成功領取
      李同學 135****8607 剛剛成功領取
      楊同學 132****5667 剛剛成功領取
      岳同學 134****6652 剛剛成功領取
      梁同學 157****2950 剛剛成功領取
      劉同學 189****1015 剛剛成功領取
      張同學 155****4678 剛剛成功領取
      鄒同學 139****2907 剛剛成功領取
      董同學 138****2867 剛剛成功領取
      周同學 136****3602 剛剛成功領取
      相關推薦HOT
      面向對象編程的特征是什么?請解釋每個特征

      答案:面向對象編程的特征包括:封裝(Encapsulation):封裝是將相關的數(shù)據(jù)和方法組合在一起形成類的機制。它可以隱藏內部實現(xiàn)細節(jié),只暴露必要的...詳情>>

      2023-07-18 13:56:00
      容器是什么?如何理解容器

        容器(Container)是一個廣泛的概念,指的是一種可以容納其他元素或對象的數(shù)據(jù)結構或抽象概念。在計算機科學中,容器的概念經(jīng)常出現(xiàn)在數(shù)據(jù)結...詳情>>

      2023-05-08 13:41:00
      java面向對象的三大特性

      Java是一種面向對象的編程語言,它支持面向對象編程,具有三大特性,即封裝、繼承和多態(tài)。封裝是指將對象的屬性和行為進行包裝,只向外界暴露必...詳情>>

      2023-03-20 16:55:27
      mysql數(shù)據(jù)庫基本概念是什么

      MySQL是一個開源的關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),被廣泛應用于Web開發(fā)中。以下是MySQL數(shù)據(jù)庫的一些基本概念:1.數(shù)據(jù)庫:一個數(shù)據(jù)庫是一個集合,...詳情>>

      2023-03-06 14:00:29
      微服務的優(yōu)缺點分別是什么?說下你在項目開發(fā)中碰到的坑

      - 可以用不同的語言開發(fā),面向接口編程;- 微服務只是業(yè)務邏輯的代碼,不會和HTML、CSS或者其他界面組合;- 可以靈活搭配,連接公共庫/連接獨立...詳情>>

      2022-10-19 17:35:38