Thread.start() run()

Thread.start() & run()

public static void main(String[] args) {??new Thread(new Runnable() {@Overridepublic void run() {System.out.println("2432");}}).start();
}public class Thread implements Runnable {//通過構造方法調用init方法,在init方法中賦值private Runnable target;//target賦值過程public Thread(Runnable target) {init(null, target, "Thread-" + nextThreadNum(), 0);}private void init(ThreadGroup g, Runnable target, String name,long stackSize) {init(g, target, name, stackSize, null, true);}private void init(ThreadGroup g, Runnable target, String name,long stackSize, AccessControlContext acc,boolean inheritThreadLocals) {...this.target = target;...}//調用Runnable接口實現類中的run()@Overridepublic void run() {if (target != null) {target.run();}}/** start()方法中并沒有調用run(),run()為什么能執行呢?* 當前代碼是在main線程中執行,如果直接調用run()那就不是新啟線程了。** 當調用Thread對象的start方法后,它的內部調用start0方法。* 接著通過JNI技術調用虛擬機里用C++編寫的方法,在該方法中會創建JavaThread對象。* 在其構造方法中調用系統函數pthread_create創建內核線程。* 最終在內核線程中執行Thread對象的run方法。*/public synchronized void start() {group.add(this);boolean started = false;try {start0();started = true;} finally {try {if (!started) {group.threadStartFailed(this);}} catch (Throwable ignore) {/* do nothing. If start0 threw a Throwable thenit will be passed up the call stack */}}}//最終通過hotspot調用C++通過系統函數創建線程private native void start0();}

hotspot結論參考:

Thread類的start()方法創建線程的底層分析_thread.start()-CSDN博客

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

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

相關文章

Springboot+vue的商業輔助決策系統的設計與實現(有報告)。Javaee項目,springboot vue前后端分離項目

演示視頻: Springbootvue的商業輔助決策系統的設計與實現(有報告)。Javaee項目,springboot vue前后端分離項目 項目介紹: 本文設計了一個基于Springbootvue的前后端分離的商業輔助決策系統的設計與實現,采…

Leetcode210. 課程表 II

Every day a Leetcode 題目來源:210. 課程表 II 解法1: 什么是拓撲排序? 我們考慮拓撲排序中最前面的節點,該節點一定不會有任何入邊,也就是它沒有任何的先修課程要求。當我們將一個節點加入答案中后,我…

html5新增標簽+css3新增標簽

新增標簽 一.html5新增標簽1.語義化標簽2.多媒體標簽(1)視頻video(2)音頻audio(3).總結 3.input屬性4.表單屬性 二.css3新增選擇器1.新增選擇器(1)屬性選擇器(2&#xff…

Ubuntu進入python時報錯:找不到命令 “python”,“python3” 命令來自 Debian 軟件包 python3

一、錯誤描述 二、解決辦法 進入”/usr/bin”目錄下,查看/usr/bin目錄中所有與python相關的文件和鏈接: cd /usr/bin ls -l | grep python 可以看到Python3指向的是Python3.10,而并無指向python3的軟連接 只需要在python與python3之間手動…

微服務治理:Nacos, Zookeeper, consul, etcd, Eureka等 5 個常用微服務注冊工具對比

當然!下面是 Nacos、Zookeeper、Consul、etcd 和 Eureka 這五個常用的注冊中心的詳細對比: Nacos: Nacos 是由 HashiCorp 開發的高度可擴展和可靠的服務發現、配置管理和服務網格解決方案。它的架構基于一組服務器代理形成的共識組和與服務器…

Github配置SSH免密認證

以Ubuntu Server為例 生成SSH ssh-keygen -t ed25519 -C "your_emailexample.com" 如果系統不支持Ed25519算法,使用舊的命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 根據提示生成公私鑰文件,記下位置…

前端學習、CSS

CSS可以嵌入到HTML中使用。 每個CSS語法包含兩部分,選擇器和應用的屬性。 div用來聲明針對頁面上的哪些元素生效。 具體設置的屬性以鍵值對形式表示,屬性都在{}里,屬性之間用;分割,鍵和值之間用:分割。 因為CSS的特殊命名風格…

MySQL 常用優化方式

MySQL 常用優化方式 sql 書寫順序與執行順序SQL設計優化使用索引避免索引失效分析慢查詢合理使用子查詢和臨時表列相關使用 日常SQL優化場景limit語句隱式類型轉換嵌套子查詢混合排序查詢重寫 sql 書寫順序與執行順序 (7) SELECT (8) DISTINCT <select_list> (1) FROM &…

ctf_show筆記篇(web入門---php特性)

目錄 php特性 89&#xff1a;直接數組繞過preg_match當遇到數組時會直接報錯輸出0 90&#xff1a;這里利用了intval的特性 91&#xff1a;這里需要細節一點 92-93&#xff1a;這兩題的方法很多可以發散思維 94&#xff1a;還是利用小數繞過例如4476.0 95&#xff1a;這里…

HTML和CSS (前端共三篇)【詳解】

目錄 一、前端開發介紹 二、HTML入門 三、HTML基礎標簽 四、CSS樣式修飾 五、HTML表格標簽 六、HTML表單標簽 一、前端開發介紹 web應用有BS和CS架構兩種&#xff0c;其中我們主要涉及的是BS架構。而BS架構里&#xff0c;B&#xff08;Browser瀏覽器&#xff09;是客戶端的…

藍橋杯(3.1)

92. 遞歸實現指數型枚舉 import java.util.Scanner;public class Main {static int N 16;static int n;static int[] st new int[N]; public static void dfs(int u) {if(u > n) {for(int i1;i<n;i) {if(st[i] 1)System.out.print(i" ");}System.out.print…

798. 差分矩陣

Problem: 798. 差分矩陣 文章目錄 思路解題方法復雜度Code 思路 這是一個差分矩陣的問題。差分矩陣是一種用于處理區間修改問題的數據結構&#xff0c;它可以在O(1)的時間復雜度內完成區間的修改操作&#xff0c;然后在O(n)的時間復雜度內完成所有元素的更新操作。 在這個問題中…

【k8s管理--兩種方式安裝prometheus】

1、k8s的監控方案 1.1 Heapster Heapster是容器集群監控和性能分忻工具&#xff0c;天然的支持Kubernetes和CoreOS。 Kubernetes有個出名的監控agent–cAdvisor。在每個kubernetes Node上都會運行cAdvisor&#xff0c;它會收集本機以及容器的監控數(cpu,memory,filesystem,ne…

conda目錄遷移

conda默認安裝在系統目錄&#xff0c; 但隨著使用&#xff0c; 占用的空間越來越大&#xff0c; 需要遷移到其他目錄。 假設原來conda安裝在/home/leo/anaconda3目錄&#xff0c; 現在要遷移到/data路徑。 方法是&#xff1a; 1 移動文件位置 mv /home/leo/anaconda3 /dat…

python筆記_鍵盤輸入

例&#xff1a;從控制臺接收員工信息 name input("輸入姓名:") age input("輸入年齡:") id input("輸入id:") print("name",name) print("age",age) print("id",id) ——> 輸入姓名: 1&#xff0c;接收到的…

Ubuntu將c++編譯成.so文件并測試

一、準備cpp和h文件 創建test.cpp 在cpp中定義相加的函數funcAdd&#xff0c;給出函數的細節代碼 #include <iostream> using namespace std;int funcAdd(int x, int y) {return xy; }創建test.h 在h中聲明定義的函數&#xff0c;不需要任何細節 #ifndef __TEST__ #…

LeetCode 熱題 HOT 100(P1~P10)

&#x1f525; LeetCode 熱題 HOT 100 這里記錄下刷題過程中的心得&#xff0c;其實算法題基本就是個套路問題&#xff0c;很多時候你不知道套路或者模板&#xff0c;第一次嘗試去做的時候就會非常懵逼、沮喪和無助。而且就算你一時理解并掌握了&#xff0c;過一段時間往往會絕…

蘋果 Vision Pro零售部件成本價格分析

蘋果公司發布的全新頭戴式顯示器 Apple Vision Pro 雖然售價高達3499美元&#xff0c;但其制造成本同樣不菲&#xff0c;根據研究機構 Omdia 的估計&#xff0c;該頭顯僅零部件成本就超過了1500美元。這款頭顯的總零部件成本估計為1542美元&#xff0c;這還并不包括研發、包裝、…

騰訊云服務器CVM_云主機_云計算服務器_彈性云服務器

騰訊云服務器CVM提供安全可靠的彈性計算服務&#xff0c;騰訊云明星級云服務器&#xff0c;彈性計算實時擴展或縮減計算資源&#xff0c;支持包年包月、按量計費和競價實例計費模式&#xff0c;CVM提供多種CPU、內存、硬盤和帶寬可以靈活調整的實例規格&#xff0c;提供9個9的數…

【算法】順時針打印矩陣(圖文詳解,代碼詳細注釋

目錄 題目 代碼如下: 題目 輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字。例如:如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則打印出數字:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 這一道題乍一看,沒有包含任何復雜的數據結構和…