高并發-線程池面試

文章目錄

  • 高并發-線程池2024
    • 心得
    • 好的博客
    • 必會面試題
    • 為什么使用線程池
    • 線程池的實現原理
    • 線程池的拒絕策略
    • 阻塞隊列已滿,在提交任務會發生什么問題
    • threadlocal原理和使用
    • 多線程配置

高并發-線程池2024

心得

  1. 面試都是圍繞著三高展開,高并發,高可用,分布式展開。多線程屬于高并發的范疇

  2. 好多問題在數據訪問量比較小的情況下不好發生,但是數據量比較大的情況下,就要考慮更多,否則就會出問題。

  3. 在學習原理和底層這塊,會用到很多的圖例,圖解,這塊最好用在線畫圖工具自己畫出來,并把鏈接貼過來,或者用md來畫圖也可以。

好的博客

  • JUC學習指南 這里主要介紹的背景,屬于前言
  • JUC快速入門各個知識點匯總 知識比較全面 九、線程池(重點)講的比較好 下面是四種不同拒絕策略的使用效果 十二、死鎖問題及排查
  • synchronized原理分析
  • JMeter詳細使用教程及實際案例

必會面試題

  • 多線程
  • 面試題 26 . 簡述 Synchronized 的原理 ?
  • 面試題 42 . Java 中的線程池是如何實現 ?
  • 面試題 43 . Java創建線程池的幾個核心構造參數?
  • 面試題 44 . 請簡述Java線程池中的線程是怎么創建的?
  • 面試題 86 . 請列舉ThreadPoolexecutor參數配置?
  • 面試題 103 . 簡述Java線程池中隊列常用類型有哪些 ?
  • 面試題 122 . 簡述樂觀鎖和悲觀鎖的理解及如何實現,有哪些實現方式?

為什么使用線程池

使用線程池的優點
減少不斷創建和銷毀線程的資源銷耗,可以重復利用線程池中的線程
提高任務響應速度,不需要等待線程創建,就可以直接使用存在的線程
便于管理,可以統一的分配,管理和調優。

線程池的實現原理

如果線程數少于核心線程線程數,既是有線程空閑也是會創建新的線程。
如果線程數等于核心線程,那么就會把任務放到隊列中。
如果線程池線程數大于或等于核心線程數,并且隊列以及滿了,但是線程數小于最大線程,那么就會創建新的線程來處理。
如果線程數達到了最大線程數,那么就會通過handle設置的策略來拒絕這個任務。
并且線程中的線程如果空閑時間超過了指定的空閑時間,就會被銷毀,從而動態的調整線程池的數量。

線程池的拒絕策略

可以在構造器中設置線程池的拒絕策略
核心線程  最大線程 隊列  首先核心線程創建,其次隊列打滿,才會繼續創建線程,線程達到最大線程后,就會執行拒絕策略。有4種拒絕的策略
第一個 線程池滿了一行,會拋出一個runtime的異常,我們可以感知到線程池已滿,可以重試或放棄提交。
第二種,線程池滿了,直接丟棄,不會通知,會有一定的風險
第三種,線程池滿了,會丟棄線程隊列中時間最長的線程,也會存在風險。
第四種,線程滿了,先進行等待,等有資源了在提交新的任務。
我們也可以在方法中大于自己的日志,當線程池滿了的情況下,及時處理。

阻塞隊列已滿,在提交任務會發生什么問題

核心線程  阻塞隊列 非核心線程 執行拒絕策略

threadlocal原理和使用

這是一個線程本地存儲機制,這個是一個鍵值對
比方存儲保存用戶的信息,保存連接的對象。
在線程池使用的時候,如果線程一直占用,可能會出現內存泄漏的情況發生。解決的辦法是數據使用后要記得清除掉。

多線程配置

核心線程10個,其他線程根據電腦的核數,一核大概配置20個線程,隊列排1000個。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13040.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洗衣洗鞋店做小程序有什么優勢?

互聯網洗衣洗鞋小程序閃亮登場,想知道這款小程序有何魅力嗎? 如今,眾多商家紛紛推出預約上門洗鞋服務,💁?♀?并傾力打造洗鞋小程序,旨在拓展線上銷售渠道。🌟那么,這款洗鞋小程序究…

Oracle數據庫的CURRENT SCN

數據庫的CURRENT SCN是Oracle當前最大的SCN,可以通過多種方法獲取該SCN: 1、直接從內存中獲取。由于當前最大SCN存儲在fixed sga中,因此可以通過Oracle debug工具DUMP kcsgscn結構體獲取內存中的最大SCN。在下面的程序中,BA371為1…

網絡配置的加密存儲

隨著數據泄露事件的增加,擾亂了公司的正常工作周期,企業遭受了損失。事實上,數據泄露可以通過存儲加密來控制,存儲加密是防止黑客對網絡數據庫造成嚴重破壞的最有效方法之一。在網絡配置管理器中,存儲加密可用于存儲設…

SpringBoot解析MyBatis預編譯SQL

pom.xml <profile><!-- 開發環境 --><id>dev</id><activation><!-- 默認激活 --><activeByDefault>true</activeByDefault></activation><properties><spring.profiles.active>dev</spring.profiles.ac…

Unity 模擬放大鏡局部放大UI 效果實現

UI 放大實現 RectTransformUtility.ScreenPointToLocalPointInRectangle(rectScale, eventData.position, eventData.pressEventCamera, out localPos); 使用IPointerDownHandler 獲取鼠標點擊時的有效負載&#xff0c;并將鼠標坐標轉成對應的UI 坐標&#xff0c;rectScale 為…

【Win】一鍵恢復IE11工具:讓舊版瀏覽器在新系統中重生

微軟在2020年8月的時候就已經公告IE11的生命周期終點&#xff0c;多次提醒將在2022年6月15日起不再支持IE 11&#xff0c;呼吁用戶盡快轉換到Chromium-based Microsoft Edge。微軟也陸續終止旗下服務支持這個舊式瀏覽器。2021年3月&#xff0c;Chrome瀏覽器已不支持舊IE App。2…

字符串解析-KMP魔改

題目 已知存在一種字符串解析語法&#xff0c;其中的語法元素如下 N:用于匹配單個數字(0-9) A:用于匹配單個字母(a-z,A-Z) n():用于表示一個分組&#xff0c;分組中至少有一個N語法元素或者A語法元素&#xff0c;n為一個數值&#xff0c;表示匹配n次&#xff0c;1<n< 20…

歡迎光臨Java中的客“棧”

就目前而言&#xff0c;相信大家對數組、鏈表還有棧都基本已經有了一些了解&#xff0c;本篇文章將以棧為主體&#xff0c;探究棧和數組&#xff0c;棧和鏈表之間的一些聯系。 當然在開始對棧的學習之前&#xff0c;我們先回顧有關數組、鏈表的基礎知識點。 學習代碼就是一個…

四川景源暢信:如何更好的為抖音小店做引流?

在數字化營銷的浪潮中&#xff0c;抖音小店作為新興的電商形態&#xff0c;正以其獨特的社交屬性和流量優勢吸引著眾多商家的目光。如何為抖音小店引流&#xff0c;成為許多店主心中的疑問。本文將深入探討有效提升店鋪流量的策略&#xff0c;助你在抖音平臺上快速崛起。 一、內…

代碼隨想錄算法訓練營第二十五天:樹的最后學習

代碼隨想錄算法訓練營第二十五天&#xff1a;樹的最后學習 如果不對遞歸有深刻的理解&#xff0c;本題有點難 單純移除一個節點那還不夠&#xff0c;要修剪&#xff01; #669. 修剪二叉搜索樹 力扣題目鏈接(opens new window) 給定一個二叉搜索樹&#xff0c;同時給定最小邊界…

shell腳本之sort,uniq,tr,cut,sphit,paste,ecal與正則表達式

sort命令 uniq命令 tr命令 cut命令 sphit命令 paste命令 ecal命令 正則表達式 sort命令 sort命令---以行為單位對文件內容進行排序&#xff0c;也可以根據不同的數據類型來排序 比較原則是從首字符向后&#xff0c;依次按ASCII碼值進行比較&#xff0c;最后將他們按升序…

通過java將數據導出為PDF,包扣合并單元格操作

最近項目中需要將查詢出來的表格數據以PDF形式導出&#xff0c;并且表格的形式包含橫向行與縱向列的單元格合并操作&#xff0c;導出的最終效果如圖所示&#xff1a; 首先引入操作依賴 <!--導出pdf所需包--><dependency><groupId>com.itextpdf</groupId&…

【js獲取月份最后一天】

功能 獲取月份最后一天 代碼 function getLastDay(year, month) {//返回月份最后一天&#xff0c;不寫參數默認返回本月最后一天var date new Date(),date2, day;if (year undefined) year date.getFullYear(); //獲取今年年份if (month undefined) month date.getMont…

Linux- cron調度進程

cron 是一個 Unix 類操作系統中的時間調度守護進程&#xff0c;用于在特定的時間或間隔運行指定的命令或腳本。它非常適合自動化系統管理和維護任務&#xff0c;如備份、日志輪轉、系統監控等。以下是 cron 守護進程的詳細介紹。 cron 守護進程的工作原理 crontab 文件&#x…

上海市計算機學會競賽平臺2022年5月月賽丙組三數排序

題目描述 給定三個整數 &#x1d44e;,&#x1d44f;,&#x1d450;a,b,c&#xff0c;請將它們以從小到大的順序排序后輸出。 輸入格式 單獨一行&#xff1a;三個整數表示 &#x1d44e;,&#x1d44f;,&#x1d450;a,b,c。 輸出格式 單獨一行&#xff1a;表示按升序排列…

匯聚榮:拼多多長期沒有流量如何提高?

在電商的海洋中&#xff0c;拼多多以其獨特的團購模式吸引了眾多消費者的目光。然而&#xff0c;隨著市場競爭的加劇和消費者需求的多樣化&#xff0c;一些商家發現自家店鋪的流量持續低迷&#xff0c;銷售業績難以突破。面對這樣的挑戰&#xff0c;如何有效提升拼多多店鋪的客…

【Python】學生管理系統

為了了解Json以及在python中如何處理Json數據&#xff0c;我在這里整理了一段全面詳細的 Python 代碼&#xff0c;演示了如何加載、處理和操作 JSON 數據。該代碼包括讀取 JSON 數據、查詢學生信息、添加新學生、更新課程信息等操作。 示例代碼 import json# 示例 JSON 數據 …

深視 線掃相機 獲取點云數據

Qt hello - 專注于Qt的技術分享平臺 最近項目上用到了深視的線掃相機&#xff0c;集成了三天才搞定&#xff0c;分享下代碼。 順便吐槽一下&#xff0c;想用相機取圖&#xff0c;這么簡單的功能&#xff0c;搞得如此麻煩。 1&#xff0c;文檔有三份&#xff0c;就不能集成到…

【計算機畢業設計】springboot反詐科普平臺的設計與實現

相比于以前的傳統手工管理方式&#xff0c;智能化的管理方式可以大幅降低反詐科普平臺的運營人員成本&#xff0c;實現了反詐科普平臺的 標準化、制度化、程序化的管理&#xff0c;有效地防止了反詐科普平臺的隨意管理&#xff0c;提高了信息的處理速度和精確度&#xff0c;能夠…

python中字符串的 format() 方法

文章目錄 前言1、位置參數2、索引參數3、命名參數3、格式化參數 前言 format() 是 Python 字符串對象的方法&#xff0c;用于將值插入到格式化字符串的占位符中。它是一種靈活和強大的字符串格式化工具。format() 方法可以在字符串中使用占位符 {}&#xff0c;并通過傳遞參數將…