您好,登錄后才能下訂單哦!
小編給大家分享一下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如何實現多線程有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。