首頁  >  文章  >  Java  >  java怎麼實作多執行緒

java怎麼實作多執行緒

王林
王林轉載
2020-09-30 15:56:351964瀏覽

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刪除
上一篇:什麼叫遞迴下一篇:什麼叫遞迴