成都java開發培訓
達內成都高升橋中心

18011516507

熱門課程

成都比較好的java培訓機構:JavaThead類的使用

  • 時間:2020-07-16 16:38
  • 發布:成都達內
  • 來源:成都達內

下面我們先來介紹一些基本方法

構造方法

public Thread() :分配一個新的線程對象。

public Thread(String name) :分配一個指定名字的新的線程對象。

public Thread(Runnable target) :分配一個帶有指定目標新的線程對象。

public Thread(Runnable target,String name) :分配一個帶有指定目標新的線程對象并指定名字。

常用方法

public String getName() :獲取當前線程名稱。

public void start() :導致此線程開始執行; Java虛擬機調用此線程的run方法。

public void run() :此線程要執行的任務在此處定義代碼。

public static void sleep(long millis) :使當前正在執行的線程以指定的毫秒數暫停(暫時停止執行)。

public static Thread currentThread() :返回對當前正在執行的線程對象的引用

創建線程的方式有兩種 一種是繼承Thead類的方式,一種是實現Runable接口的方式,下面我們來逐一講解

繼承Thead類的方式

//繼承Thread接口

public class MyThread extends java.lang.Thread{

public MyThread(String name) {

super(name);

}

//覆寫run方法

@Override

public void run() {

int i=20;

for (int i1 = 0; i1 < i; i1++) {

System.out.println("輔線程"+i1);

}

}

}

創建線程的方式二

使用Runable接口來實現

怎么使用Runable接口

1.定義一個類繼承Runable接口,并實現其run()方法;

2.創建Runable對象,并以該對象作為Thread的target來創建Thread對象,該Thread對象才是真正的線程對象

3.調用Thread的start()來啟動該線程

下面使用一段代碼來演示

package Rubable;

public class RunableImp implements Runnable {

@Override

public void run() {

int i=20;

for (int i1 = i; i1 > 0; i1--) {

System.out.println("Runable接口:"+i1);

}

}

}

package Rubable;

public class Main {

public static void main(String[] args) {

RunableImp runableImp = new RunableImp();

Thread r = new Thread(runableImp);

r.start();

int i=20;

for (int i1 = i; i1 > 0; i1--) {

System.out.println("主線程:"+i1);

}

}

}

可以看到實現Runable接口,只是使該類具有了多線程的特征,run()方法使多線程程序的一個執行目標所有多線程的代碼都在run()方法里面,Thread其實也是實現了Runable接口的類

所有的多線程代碼都是通過Thread的start方法來運行的,所以,不管是繼承Thread還是實現runable接口來實現多線程,最終都是通過Thread的對象的APIA來控制線程

即Runalbe對象僅僅是作為Thread對象的target,Runable實現類里包含的run()方法僅作為線程的執行體,而實際的對象依然是Thread實例,只是線程負責執行其target的run方

使用Runable類的好處

1.避免了類單繼承的局限性

2.增加了程序的健壯性,實現解耦操作,代碼可以被多個線程共享,代碼與線程獨立

3.線程池中只可以放入Runable或Callable類線程,不能放入繼承Thread的類

小細節:

java在一次運行中至少會啟動兩個線程,一個main線程一個垃圾收集線程,java命令在執行一個類的時候,實際都會啟動一個jvm,每一個jvm其實就是在操作系統中啟動了一個進程

扯點匿名內部類的操作

有沒有一點一氣呵成的感覺

package Rubable;

public class Main {

public static void main(String[] args) {

new Thread(new Runnable() {

@Override

public void run() {

System.out.println("這是匿名內部類輸出的!!!");

}

}).start();

}

}

上一篇:成都java培訓機構哪家好?Java守護線程普通線程的例子
下一篇:成都java培訓好不好?AJAX介紹和使用

成都比較好的java培訓機構:JavaThead類的使用

成都java培訓機構哪家好?Java守護線程普通線程的例子

成都java培訓機構排名?送給你12個Git使用技巧!

成都java就業怎么樣?Java8-函數式接口

選擇城市和中心
江西省

貴州省

廣西省

海南省

偷拍初高中女厕所视频