Java多線程1

線程是操作系統能夠運行調度的最小單位,它包含在進程之中,是進程的實際運作單位

多線程有三種實現方式

線程實現方法1,繼承Thread類(無返回值):

1、繼承Thread

2、重寫run方法(線程要執行的代碼)

3、創建子類對象,并啟動線程 .start

線程實現方法2,實現Runnable接口(無返回值):

1、自己定義一個類實現Runnable接口

2、重寫里面的run方法

3、創建自己類的對象

4、創建Thread類的對象,并開啟線程

?

線程實現方法3,實現Callable接口:

可以獲取多線程運行結果

1、創建一個類實現Callable接口

2、重寫call方法(有返回值,多線程運行的結果)--重寫時帶泛型,為返回值類型

3、創建MyCallable對象(表示多線程要執行的任務)

4、創建FutureTask對象(管理多線程運行的結果)

5、創建Thread對象,并啟動線程

線程常用方法:

Thread.sleep()

線程優先級:

默認優先級5,范圍為1-10

守護線程:setDaemon,當所有非守護線程結束后,守護線程也會終止執行

Thread.yield()禮讓線程,盡可能讓線程執行均勻

join 插入線程

線程的生命周期

線程安全

synchronized,鎖對象一般是當前類的字節碼文件(確保唯一)

synchronized可以修飾同步代碼塊&同步方法

StringBuilder是線程不安全的,StringBuffer是線程安全的

Lock手動加鎖,解鎖

多線程等待喚醒機制:

阻塞隊列:

ArrayBlockingQueue<T>,LinkedBlockingQueue<T>,這兩個隊列是線程安全

queue.put(), queue.take()

線程池:

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

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

相關文章

云計算如何提高企業的數據安全性和隱私保護

在企業數字化轉型加速推進的今天&#xff0c;數據安全與隱私保護已成為決定企業生存發展的核心命題。云計算憑借其靈活的架構優勢&#xff0c;不僅重塑了企業資源管理模式&#xff0c;更在數據安全防護領域構建起多層次保障體系。以下從六大維度解析云計算如何為企業數據安全與…

GaussDB 數據庫架構師修煉(二)數據庫計算容量評估

1 計算資源容量評估主要流程 一般地是經過以下5個流程評估GaussDB的計算容量: 2 TPC-C基準測試介紹 1)TPC-C是業界常用的一套Benchmark 由TPC (Transaction Processing Performance Council)委員會制定發布,用于 評測數據庫的聯機交易處理(偏向OLTP)能力,測試結果數據…

開源 python 應用 開發(六)網絡爬蟲

最近有個項目需要做視覺自動化處理的工具&#xff0c;最后選用的軟件為python&#xff0c;剛好這個機會進行系統學習。短時間學習&#xff0c;需要快速開發&#xff0c;所以記錄要點步驟&#xff0c;防止忘記。 鏈接&#xff1a; 開源 python 應用 開發&#xff08;一&#xf…

flink sql讀hive catalog數據,將string類型的時間戳數據排序后寫入kafka,如何保障寫入kafka的數據是有序的

在 Flink SQL 中&#xff0c;要確保從 Hive 讀取的 STRING 類型時間戳數據排序后有序寫入 Kafka&#xff0c;需要結合 批處理模式、時間類型轉換、單分區寫入 和 Kafka 生產者配置。以下是完整解決方案&#xff1a; 一、核心解決方案 1. 批處理模式 全局排序 將作業設置為批處…

7.17 滑動窗口 |assign |memo

lcp56. memo優化tle或者改用bfsclass Solution {int m, n;int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};public:int conveyorBelt(vector<string>& matrix, vector<int>& start, vector<int>& end) {int ret INT_MAX;m matrix.size();n…

統計功效是什么?

統計功效的通俗理解可以把“統計功效”想象成偵探破案的能力——它代表統計檢驗&#xff08;偵探&#xff09;在犯罪事實確實存在&#xff08;真實效應存在&#xff09;時&#xff0c;成功發現真相&#xff08;檢測出效應&#xff09;的概率。核心比喻假設你是一個偵探&#xf…

大語言模型(LLM)訓練的教師強制(Teacher Forcing)方法

大語言模型&#xff08;LLM&#xff09;在訓練時使用一種名為“教師強制&#xff08;Teacher Forcing&#xff09;”的方法&#xff0c;而不是它們在推理&#xff08;生成文本&#xff09;時使用的“自回歸&#xff08;Autoregressive&#xff09;”方法 。闡明關于LLM訓練的一…

歸一化與激活函數:深度學習的雙引擎

歸一化和激活函數區別 歸一化和激活函數是深度學習中兩個不同但又存在關聯的技術,前者聚焦于“數據分布的調整”,后者聚焦于“引入非線性與輸出轉換”。 Softmax 既可以被視為一種歸一化操作,也屬于激活函數 因為它同時滿足兩者的核心特征,只是從不同角度定義:從“輸出…

C# --- 單例類錯誤初始化 + 沒有釋放資源導致線程泄漏

C# --- 單例類錯誤初始化 沒有釋放資源導致線程泄漏Background原因分析問題一&#xff1a; 錯誤初始化&#xff08;使用了箭頭函數&#xff09;問題一&#xff1a; 沒有Dispose資源Background 背景: service A的其中一個Api會向mq發送消息問題&#xff1a;線上發現這個服務經常…

MySQL基礎學習之DML,DQL(二)

這里寫目錄標題一、DML1、INSERT語句1)、給指定列添加數據2)、給全部列添加數據3)、批量數據添加數據4)、操作2、UPDATE語句3、DELETE語句二、DQL1、單表查詢1&#xff09;查詢語法2&#xff09;查詢全部3&#xff09;查詢部分4&#xff09;條件查詢5&#xff09;聚合函數6&…

在 Linux 系統中實現 Spring Boot 程序自動啟動的最佳實踐

在實際部署 Spring Boot 項目的生產環境中&#xff0c;如何確保服務自動啟動&#xff08;如開機自動運行、宕機自動恢復&#xff09;是一項基礎而關鍵的運維能力。本文將系統介紹如何在 Linux 中將 Spring Boot 應用注冊為 systemd 服務&#xff0c;實現進程守護與自動啟動。&a…

如何建立項目團隊的自驅力文化?

建立項目團隊的自驅力文化&#xff0c;關鍵在于賦權機制、目標共創、持續反饋、內在激勵、價值認同。 其中&#xff0c;“目標共創”尤其重要。項目成員若未參與目標制定&#xff0c;僅被動接受任務&#xff0c;將很難激發責任感和參與熱情。反之&#xff0c;通過共創目標&…

【React Native】布局文件-底部TabBar

布局文件-底部tabBar 內容配置 export default function Layout() {return (<Tabs />); }默認會將布局文件是將與它在同一個目錄的所有文件&#xff0c;包括下級目錄的文件&#xff0c;全都配置成Tab了。&#xff1a; 這樣做顯然不對&#xff0c;正確的做法是 在app目…

CompareFace使用

CompareFace 使用 CompareFace 有三種服務&#xff0c;分別是人臉識別&#xff08;RECOGNITION&#xff09;、人臉驗證&#xff08;VERIFICATION&#xff09;、人臉檢測&#xff08;DETECTION&#xff09;。 人臉識別其實就是人臉身份識別(每張照片只有一個人臉)&#xff0c;…

APP測試之Monkey壓力測試

&#xff08;一&#xff09;Monkey簡介 Monkey意指猴子&#xff0c;頑皮淘氣。所以Monkey測試&#xff0c;顧名思義也就像猴子一樣在軟件上亂敲按鍵&#xff0c;猴子什么都不懂&#xff0c;就愛搗亂。 Monkey 是 Android SDK 自帶的命令行工具&#xff0c;它通過向系統發送偽…

時序大模型為時序數據庫帶來的變革與機遇

時序數據&#xff08;Time Series Data&#xff09;作為記錄系統狀態隨時間變化的重要數據類型&#xff0c;在物聯網、金融交易、工業監控等領域呈爆炸式增長。傳統時序數據庫專注于高效存儲和查詢時序數據&#xff0c;而時序大模型&#xff08;Time Series Foundation Models&…

深入核心:理解Spring Boot的三大基石:起步依賴、自動配置與內嵌容器

深入核心&#xff1a;理解Spring Boot的三大基石&#xff1a;起步依賴、自動配置與內嵌容器 摘要&#xff1a;在上一章&#xff0c;我們領略了Spring Boot帶來的革命性開發體驗。但魔法的背后&#xff0c;必有其科學的支撐。本章將帶你深入Spring Boot的內核&#xff0c;系統性…

達夢數據庫配置兼容MySQL

前言 作為一名數據庫管理員或開發者&#xff0c;當項目需要從MySQL遷移到達夢數據庫時&#xff0c;最關心的莫過于兼容性問題。達夢作為國產數據庫的佼佼者&#xff0c;提供了良好的MySQL兼容模式&#xff0c;今天我就來分享一下如何配置達夢數據庫以實現對MySQL的兼容。 一、為…

js與vue基礎學習

vue創建項目 安裝node安裝node、npm、cnpm node -v npm -v #npm服務器位置處于國外&#xff0c;下載包的速度會比較緩慢。阿里為國內用戶提供的cnpm&#xff0c;他是npm的鏡像&#xff0c;下載第三方包時&#xff0c;們完全可以使用cnpm來替代npm。 cnpm -v在node中執行JavaScr…

【開源.NET】一個 .NET 開源美觀、靈活易用、功能強大的圖表庫

文章目錄一、項目介紹二、適用場景三、功能模塊四、功能特點五、效果展示六、開源地址一、項目介紹 LiveCharts2 是一個開源、簡單、靈活、交互式且功能強大的 .NET 圖表庫。LiveCharts2 現在幾乎可以在任何地方運行&#xff1a;Maui、Uno Platform、Blazor-wasm、WPF、WinFor…