首頁> Java> Java入門> 主體

java怎麼實作多執行緒

王林
發布: 2020-09-30 15:56:35
轉載
1955 人瀏覽過

java怎麼實作多執行緒

需求:我們要實作多執行緒的程式

(推薦教學: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中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!