91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何實現多線程

發布時間:2020-10-09 15:47:35 來源:億速云 閱讀:125 作者:小新 欄目:編程語言

小編給大家分享一下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如何實現多線程有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴和县| 华池县| 布尔津县| 多伦县| 巴彦县| 岫岩| 邹平县| 平和县| 聂拉木县| 体育| 化州市| 汕头市| 武乡县| 万山特区| 临清市| 哈巴河县| 儋州市| 竹山县| 和硕县| 绵阳市| 克东县| 台中县| 古丈县| 朔州市| 沙湾县| 洪江市| 孝义市| 丹巴县| 翁源县| 民权县| 天等县| 太康县| 莱阳市| 巴林左旗| 阿克苏市| 阳原县| 彭阳县| 湟源县| 宜春市| 林州市| 绥棱县|