需求:我們要實作多執行緒的程式
(推薦教學:java課程)
#如何實作:
由於執行緒是依賴行程而存在的,所以我們應該先建立一個行程出來
而而行程是由系統建立的,所以我們應該去呼叫系統功能來建立一個行程
但是,Java是無法直接呼叫系統功能的,所以,我們沒有辦法直接實作多執行緒程式
但是呢,Java可以直接呼叫C/C 寫好的程式來實作多執行緒程式
由於C/C 去呼叫系統功能建立進程,然後Java去呼叫這樣的東西
然後提供一些類別供我們使用。我們就可以實作多執行緒
那麼Java提供的類別是什麼?
Thread
透過查看API,我們知道有兩種方法實作多執行緒
方式一:繼承Thread類別
步驟:
A:自訂類別MyThread繼承Thread類別
B:MyThread類別裡面重寫run();
為什麼是run()方法呢?
不是類別種的所有程式碼都需要被執行緒執行
而這個時候,為了區分那些程式碼能夠被多執行緒執行,Java提供了Thread類別中的run()方法
用來包含哪些被執行緒執行的程式碼
C:建立物件
D:啟動執行緒
範例:
package cn.itcast_01; public class 如何实现多线程及其多线程方式1的思路 { public static void main(String[] args) { // 创建线程对象 MyThread my = new MyThread(); //启动线程 my.run(); my.run(); //调用run();方法为什么是单线程呢? //因为run();方法的直接调用其实就相当于普通方法调用,所有你看到的是单线程的效果 //想要看到多线程的效果,就必须说另一个方法:start() //面试题run()和start()的区别 //run():仅仅是封装被线程执行的代码,直接调用依旧是普通方法 //start():首先启动了线程,然后再由JVM去调用该线程的run()方法 MyThread my = new MyThread(); my.start(); my.start();//IllegalThreadStateException:非法的线程状态异常 //为什么呢? //因为这是相当于my线程别调用了两次。而不是两个线程的启动 //创建两个线程 MyThread my1 = new MyThread(); MyThread my2 = new MyThread(); my1.start(); my2.start(); } }
相關推薦:java入門
以上是java怎麼實作多執行緒的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。