線程的使用(二)

新增實現方式之實現Callable接口

特點

1、可以有返回值。
2、方法可以拋異常。
3、支持泛型的返回值。
4、需借助FutureTask類,比如獲取返回值。

步驟

1、創建一個實現Callable接口的實現類。
2、重寫call方法, 將此線程需執行的操作聲明在call()中。
3、創建Callable接口實現類的對象。
4、將Callable 接口實現類的對象傳遞到FutureTask構造器中,創建Future Task的對象。
5、將FutureTask的對象作為參數傳遞到Thread類的構造器中,創建Thread對象,并調用start()。
6、獲取Callable 中call()的返回值。

方法

get():獲取返回值

新增實現方式之創建線程池

步驟

1、提供指定線程數量的線程池。例:

ExecutorService service = Executors. newFixedThreadPool(線程數);

2、執行指定的線程操作,需提供實現Runnable接口或Callable接實現類的對象。例:

t.execute(Runnable runnable):

3、關閉連接池

好處

1、提高響應速度(減少創建新線程的時間)。
2、降低資源消耗(重復利用線程池中的線程,不須重復創建)。
3、便于線程管理。
① core Poolsize:核心池的大小
②maximumPoolsize:最大線程數
③keepAliveTime:線程沒有任務時最多保持多長時間后終止。

線程池相關API:ExecutorService和Executors

ExceutorService:真正的線程池接口

①void execute(Rumable runnable):執行任務/命令,無運回值,用來執行Runnuble接口的實現類。

②<T>Future<T>? submit(Callable<T> task):有返回值,用來執行Callable接口的實現類。

③void shutdown():關閉連接池

Exeecutors:工具類,用來創建并返回不同類型的線程池

① new CachedThreadPool():創建任意數量線程的線程池。

② new FixedThread Pool():創建一個固定線程的線程池。

③ new SingleThread Excutor():創建只有一個線程的線程池。

④new ScheduledThreadPool(n):創建一個線程池,可安排在給定延遲后行命令或定期地執行。

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

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

相關文章

C++中STL的容器vector

文章目錄 什么是vectorvector與普通順序表不同的點 vector的成員函數operatoroperator[]begin與end與iteratorsize()capacityresizeemptyreservepush_backpop_backinserteraseswapclear成員變量 總結 什么是vector vector&#xff1a;是數據結構里面的順序表&#xff0c;開辟一…

【LeetCode刷題】數組篇2

&#x1f387;數組中等題Part &#x1f308; 開啟LeetCode刷題之旅 &#x1f308; 文章目錄 &#x1f387;數組中等題Part&#x1f370;229.多數元素II&#x1f451;思路分析1.哈希表法2.摩爾投票法(進階) &#x1f370;15.三數之和&#x1f451;思路分析1.排序雙指針 &#x…

ES6拓展API

1.對象API拓展 is 判斷兩個值是否相等 is(0,-0);false is(NaN,NaN) true (NaN NaN) false // 1.is 判斷兩個值是否相等 console.log(Object.is(1,1)); console.log(Object.is(0,-0));//返回false console.log(0 -0); console.log(Object.is(NaN,NaN)); console.log(NaN…

音樂曲譜軟件Guitar Pro 8.1.1 破解版下載和網盤補丁

Guitar Pro 8.1.1 for Mac 中文破解版是一款功能強大的音樂曲譜軟件&#xff0c;非常適合學習如何玩&#xff0c;改進技巧&#xff0c;重現喜愛的歌曲或陪伴自己。可以幫助我們進行吉他的學習、繪譜與創作&#xff0c;它包含了幾乎所有的吉他現有指法及音色&#xff0c;在做彈撥…

角谷定理 C語言xdoj32

角谷定理定義如下&#xff1a; 對于一個大于1的整數n&#xff0c;如果n是偶數&#xff0c;則n n / 2。如果n是奇數&#xff0c;則n 3 * n 1&#xff0c;反復操作后&#xff0c;n一定為1。 例如輸入22的變化過程&#xff1a; 22 ->11 -> 34 -> 17 -> 52 -> 26 …

電源小白入門學習3——電源系統常見元件選型MOS管、二極管、電感篇

電源小白入門學習3——電源系統常見元件選型MOS管、二極管、電感篇 MOS管二極管電感 書接上文&#xff0c;上一期我們講了電阻、電容選型中需要注意的事項&#xff0c;下面我們接著來介紹MOS管和二極管。 MOS管 關于MOS管的基本原理和內部的一些結構&#xff0c;PN結、半導體的…

FPGA 低延時 TCP UDP IP協議棧兼容1G 10G 25G MAC

在計算和數據中心、軍事和航天、政府、儀器與測量、金融服務和廣播和視頻等行業&#xff0c;需要高可靠性的硬件和軟件產品&#xff0c;幫助客戶更快地開發部署新一代產品&#xff0c;減少技術和市場風險&#xff0c;我司研發的低延遲TCP/IP的IP核的傳輸速率高于傳統網口&#…

游戲Undercut使用python代碼實現

游戲Undercut是一個紙牌游戲&#xff0c;兩位選手各有編號1-5的5張牌。每一輪中每個玩家選擇一張牌&#xff0c;然后依次出示各自的牌。如果兩張牌數相同&#xff0c;則沒有比分。另有兩種情況&#xff1a;兩張牌的數字只相差1&#xff08;這就是所謂的Undercut游戲&#xff09…

【工具類】Excel 多 Sheet 導入工具類

使用反射封裝&#xff0c;實現統一讀取 import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.annotation.ExcelTarget; import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.…

創建個人網站(一)從零開始配置環境,搭建項目

目錄 前言配置環境前端后端遇到的問題1.安裝了nvm和node&#xff0c;vscode沒反應2.安裝完腳手架之后vue指令不存在 前言 從剛開始學前端的html直到現在前后端都有在開發&#xff0c;我一直都有一個想法&#xff0c;就是創建自己的網站&#xff0c;我相信大家都有這個想法&…

uni-app 設置當前page界面進入直接變為橫屏模式

首先 我們打開項目的 manifest.json 在左側導航欄中找到 源碼視圖 然后找到 app-plus 配置 在下面加上 "orientation": [//豎屏正方向"portrait-primary",//豎屏反方向"portrait-secondary",//橫屏正方向"landscape-primary",//橫屏…

99、NeRF ray space

CG相機模型 在圖形學中最常用的相機模型的原理和小孔成像是類似的。 不同之處在于&#xff0c;如上圖&#xff0c;小孔成像得到的圖像是倒立的&#xff0c;但是我們希望得到的圖像是正向的&#xff0c;因此&#xff0c;我們選擇小孔前成像。 從 3D 到 2D 的投影&#xff0c;…

Grad-CAM原理

這篇是我對嗶哩嗶哩up主 霹靂吧啦Wz 的視頻的文字版學習筆記 感謝他對知識的分享 只要大家一提到深度學習 缺乏一定的解釋性 比如說在我們之前講的分類網絡當中 網絡它為什么要這么預測 它針對每個類別所關注的點在哪里呢 在great cam這篇論文當中呢 就完美的解決了在cam這篇論…

java多線程(常用方法、實現方式、線程安全問題、生命周期、線程池)

多線程相關的三組概念 程序和進程 程序&#xff08;program&#xff09;&#xff1a;一個固定的運行邏輯和數據的集合&#xff0c;是一個靜態的狀態&#xff0c;一般存儲在硬盤中。簡單來說就是我們編寫的代碼 進程&#xff08;process&#xff09;&#xff1a;一個正在運行的…

Python 中的 queue 模塊隊列詳解;隊列如何使用——如何處理信息在多個線程間安全交換的多線程程序?

queue 模塊即隊列&#xff0c;特別適合處理信息在多個線程間安全交換的多線程程序中。下面我們對 queue 模塊進行一個詳細的使用介紹。 1 queue 模塊定義的類和異常 queue 模塊定義了以下四種不同類型的隊列&#xff0c;它們之間的區別在于數據入隊列之后出隊列的順序不同。 …

cmake編譯數據庫

在使用CMake進行編譯時&#xff0c;如果你想生成編譯數據庫&#xff0c;你可以定義CMAKE_EXPORT_COMPILE_COMMANDS選項。具體的命令如下&#xff1a; cmake -DCMAKE_EXPORT_COMPILE_COMMANDS1或者在CMakeLists.txt顯示的使能配置 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)這將會…

游戲玩家升級不傷手之選,光威龍武系列超強性能

得益于國產存儲芯片的崛起&#xff0c;現在的內存條價格太香了。要放在前幾年&#xff0c;購買內存條時都會優先考慮國際一線品牌。隨著內存條行業發生巨變&#xff0c;國產品牌光威GLOWAY&#xff0c;是全球前三的內存模組廠商嘉合勁威旗下品牌&#xff0c;它推出的內存條產品…

Zebec 推出由 Visa、萬事達網絡支持的即時支付卡,加密支付新征程

“Zebec現已推出全新的加密支付卡&#xff0c;該卡由Visa、萬事達網絡支持&#xff0c;具備即時、多鏈、非托管、無需KYC、免費等特性&#xff0c;其能夠通過加密錢包與多條主流公鏈鏈接并直接調用支付&#xff0c;這將是加密支付領域的里程碑事件。” 在2023年的12月8日&#…

C++中的string容器的substr()函數

一、作用 用來截取某段字符串。 二、頭文件 #include<string> 三、參數與用法 形式&#xff1a;s.substr(pos, len) 第一個參數是想要截取的字符串初始位置&#xff0c;第二個參數是截取字符串長度。 直接來說&#xff0c;就是從s[pos]開始截一個長度為len的子串。…

【python交互界面】實現動態觀察圖像在給定HSV范圍的區域顯示

HSV顏色空間 與RGB顏色空間相比&#xff0c;HSV顏色空間更適合進行顏色分析和提取特定顏色的目標。在HSV空間中&#xff0c;顏色信息被分布在不同的通道上&#xff0c;使我們能夠更準確地定義顏色的范圍&#xff0c;并使用閾值操作輕松地分離出我們感興趣的區域部分。 HSV三個通…