java線程(4)

程序(program)

是為完成制定任務,用某種語言編寫的一組指令的集合.簡單的話說:就是我們寫的代碼.

?

進程

1.進程是指進行中的程序,比如我們使用QQ,就啟動了一個進程,操作系統就會為該進程分配內存空間,當我們使用迅雷,又啟動了一個進程,操作系統將為迅雷分配新的內存空間.

2、進程是程序的一次執經過程,或是正在進行的一個程序,是動態過程,有它自身的產生,存在和消亡的過程.

?

線程

1.線程由進程/線程創建,是進程的一個實體.

2.一個進程可以擁有多個線程.

i.單線程:同一個時刻,只允許執行一個線程

ii.多線程:同一個時刻,可以執行多個線程,比如,一個QQ進程,可以同時打開多個聊天窗口,一個迅雷進程,可以同時下載多個文件.

3.并發:同一時刻,兩個任務發替執行,造成一種"貌似同時"的銷覺,簡單的說,單核CPU實現的多任務是并發


4.并行:同一個時刻,多個任務同時執行,多核CPU可以實現并行.

?

創建線程的兩種方式

在iava中線程使用有兩種方法.

1.繼承Thread類,重寫run方法

?

2.實現Runnable接口,重寫run方法.

使用這兩個線程類

?

示意圖:

?

實例并使用JConsole查看線程:

?

tips:控制臺中輸入jconsole

?

?

?

為什么是start()?

相信大家對于使用start方法來啟動一個新線程持懷疑態度,因為我們重寫了run方法,卻調用了start方法,那么我們就來看看源碼,打破疑慮.

?

先來看看調用run方法

結果是

通過我們上面使用jconsole知道了main是主線程的線程名,可見并沒有啟動一個新線程.

?

再來看看調用了start方法

?

結果是?

可見啟動了一個新線程,那么便可證明啟動新線程要調用的是start方法.

?

看下源代碼

?

?

結論:用start()方法才能實現多線程,只是單純的調用run方法相當于在當前調度線程中執行,并沒有多線程。

start0是本地方法,是JVM調度,底尾是c/c++實現.

真正實現多成程的效果,是start0,而不是run.

?

實現Runnable接口

1.java是單繼承的,在某些情況下一個類可能已經承了某個父類,這時再用繼承Thread類方法來創建線程顯然不可能了.

2.java設計者們提供了另外一個方式創建線程,就是通過實現Runnable接口來創建線程.

3.底層使用設計模式[靜態代理模式]

?

思路模擬

?

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

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

相關文章

02《F8Framework》核心入口 FF8.cs

FF8.cs類是 F8Framework的核心入口 采用單例模式 提供對各個功能模塊的全局訪問 【特點】通過靜態類FF8統一訪問所有功能 1.模塊化設計: 每個功能獨立 通過 ModuleCenter 統一管理 2.懶加載機制: …

【硬件】相機的硬件測試

相機測試 author: Alla Imatest 提供超過 30 種測試項目,主要包括: 1)圖像基礎參數?:MTF(調制傳遞函數)、畸變、均勻性、動態范圍 2)色彩與光學特性?:白平衡誤差、飽和度、gamma …

Profinet與Modbus TCP協議轉換技術:西門子S7-1500(主站)和歐姆龍NJ PLC的高效數據交換

一、項目背景 某大型現代化智慧農業養殖場致力于打造全方位智能化的養殖環境。其養殖系統中,環境監測與調控部分選用了西門子S7-1500PLC作為Profinet協議主站。該PLC憑借強大的運算能力和豐富的功能模塊,能夠精準地采集和處理養殖場內的溫度、濕度、空氣…

希爾伯特變換,實信號轉復信號的FPGA實現思路

希爾伯特變換將實信號轉復信號的原理 將實信號的相位推遲90度后作為復信號的虛部。 錯誤實現方式 實信號經過希爾伯特濾波后得到復信號的虛部,之后直接與實信號組成復信號。而由于濾波器本身會對信號延時,故I路與Q路并不是相差90度,所以此方…

多模態大語言模型演進:從視覺理解到具身智能的技術突破

多模態大語言模型演進:從視覺理解到具身智能的技術突破 多模態大語言模型(MLLMs)正在重塑人工智能的邊界,實現從"看見"到"理解"再到"行動"的全鏈條智能。本文將深入解析蘋果最新多模態研究進展,揭示視覺-語言模型十年演進的技術脈絡,剖析…

window顯示驅動開發—渲染管道

支持 Direct3D 版本 10 的圖形硬件可以使用共享可編程著色器核心進行設計。 GPU) (圖形處理單元可以編程著色器核心,這些著色器核心可以跨構成呈現管道的功能塊進行計劃。 這種負載均衡意味著硬件開發人員不需要使用每種著色器類型,而只需要使用執行呈現…

時序數據庫Apache IoTDB核心技術深度解析

一、引言 ?背景?:5G技術加速了IoT領域的發展,物聯網設備數據的收集、存儲和計算需求日益增長。Apache IoTDB作為一款專為物聯網時序數據設計的軟件系統,在2020年被Apache基金會認可為頂級項目。 二、IoT領域發展趨勢 ?5G與IoT?&#x…

Next.js面試題:API深度解析

Next.js面試題:API深度解析 Next.js 通過 App Router 的引入徹底改變了 Web 開發范式。在這個新時代,深入理解 Next.js 的 API 函數不再只是錦上添花,而是技術面試中的關鍵區分點。這些函數構成了構建高性能、可擴展、現代化 Web 應用的基石…

Docker-MCP quickstart

項目概述 Docker-MCP 是一個 支持mcp的Docker 管理服務器,它允許 客戶端 通過 MCP(Model Control Protocol)接口直接與 Docker 進行交互。該項目提供了一套工具,使 AI 助手能夠創建容器、部署 Docker Compose 、獲取容器日志以及…

git 的變基操作(適合一個功能進行了多次commit提交,提交記錄過多不美觀)

git提交的 commit 的記錄很多,想多個 commit 進行合并,對代碼進行整理,幫助更好的閱讀代碼 IDEA 的操作步驟: 這里,給出你想進行合并的記錄 hash 值,完了點擊“Rebase”進行合并 點擊后,會進行…

【完整源碼+數據集+部署教程】路邊廣告牌實例分割系統源碼和數據集:改進yolo11-SEAMHead

研究背景與意義 研究背景與意義 隨著城市化進程的加快,路邊廣告牌作為重要的商業宣傳媒介,越來越多地出現在城市的各個角落。它們不僅承擔著信息傳播的功能,還對城市的視覺環境產生了深遠的影響。然而,隨著廣告牌數量的激增&…

C++ 中文件 IO 操作詳解

在C中,文件操作是通過流(stream)來實現的。標準庫提供了三種主要的文件流類來處理文件IO操作: ofstream:用于寫入文件(output file stream)ifstream:用于讀取文件(input file stream&#xff0…

第32節 Node.js 全局對象

在Node.js中我們可以直接訪問到全局對象。 這些對象在所有模塊里都是可用的,有些對象不是在全局作用域而是在模塊作用域里,這些情況將在本文的內容中進行介紹。 global {Object} 全局命名空間對象。 在瀏覽器中,全局作用域就是頂級域。如…

Linux文件屬性和權限概述-linux026

Linux文件屬性和權限概述 Linux 系統作為多用戶操作系統,通過文件屬性和權限機制來控制不同用戶對文件和目錄的訪問,從而保證系統的安全性。不同的用戶對同一文件可以有不同的訪問權限,這些權限包括 讀取(read)、寫入…

nuScenes介紹

目標檢測指標 指標內容mAP(mean Average Precision)bev下2d中心點的距離來評價,而不是像2d檢測里用iou來評價mATE(Average Translation Error)中心點的2D歐式距離mASE(Average Scale Error)中心…

帶中斷計數器的UART接收中斷程序 (8259@400H/402H)

1.程序功能 在中斷服務程序中增加了中斷計數器,并在主循環中通過串口輸出中斷次數。 2.驗證 2.1手動觸發8259的IR1,高電平有效 2.2串口接收 3.測試程序 ; You may customize this and other start-up templates; ; The location of this template is…

在Postgresql中跟蹤SQL語句

文章說明 本文主要說明如何在Postgresql中跟蹤實際執行的SQL語句。 本文內容有如下應用場景: 在系統中執行了一系列的操作,需要將這些操作轉化成SQL在正式環境上一次性執行,省下重新執行一遍的操作時間。最近系統數據被人或被程序修改導致…

【信創-k8s】重磅-鯤鵬arm+麒麟V10離線部署k8s1.30+kubesphere4.1.3

隨著信創產業的推進,鯤鵬arm64架構得以快速發展。而由于信創領域的主要客戶通常部署在內網環境中,這使得離線部署成為該架構方案實施過程中不可或缺的關鍵環節。 **環境涉及軟件版本信息** 服務器芯片: **鯤鵬920/飛騰2000(arm64)** 操作系統&#xff…

第11章:Neo4j實際應用案例

理論知識和技術細節固然重要,但真正理解Neo4j的價值在于了解它如何解決實際業務問題。本章將探討Neo4j在各個領域的實際應用案例,包括社交網絡分析、推薦系統、知識圖譜以及欺詐檢測與安全分析。通過這些案例,讀者可以了解如何將前面章節學到…

數字圖像處理與OpenCV初探

什么是數字圖像處理? 當今時代,數字圖像無處不在。手機拍照、安防監控、醫療檢查、地圖導航、工業質檢……我們每天都在接收、分析和處理大量圖像信息。對于計算機而言,圖像并不是一張“看得懂”的照片,而是由數值組成的矩陣。如何…