導航:首頁 > 編程語言 > java實現線程的兩種方法

java實現線程的兩種方法

發布時間:2021-02-25 19:11:53

㈠ 為什麼java中實現多線程的方式有兩種

java創建線程的方式有三種
第一種是繼承Thread類 實現方法run() 不可以拋異常內 無返回值
第二種是實現Runnable介面 實現方法容run() 不可以拋異常 無返回值
第三種是實現Callable<T>介面,介面中要覆蓋的方法是 public <T> call() 注意:此方法可以拋異常,而前兩種不能 而且此方法可以有返回值

第三種如何運行呢 Callable介面在util.concurrent包中,由線程池提交
import java.util.concurrent.*;
ExecutorService e = Executors.newFixedThreadPool(10); 參數表示最多可以運行幾個線程
e.submit(); 這個裡面參數傳 實現Callable介面那個類的對象

㈡ Java中,請問在JAVA中實現線程有哪兩種方式

1.繼承Thread類
2.實現介面 Runnable
都可以的啊

㈢ java多線程,如何實現兩個不同的方法

class test1 implements Runnable{

@Override
public void run() {
// TODO Auto-generated method stub

}

public int add(int i){
return i+1;
}
public int del(int j){
return j-1;
}
}

class test2 extends Thread{

@Override
public void run() {
// TODO Auto-generated method stub

}
public int add(int i){
return i+1;
}
public int del(int j){
return j-1;
}
}

㈣ java多線程都有幾種方式實現

有三種:
(1)繼承Thread類,重寫run函數
創建:
class xx extends Thread{
public void run(){
Thread.sleep(1000) //線程休眠1000毫秒,sleep使線程進入Block狀態,並釋放資源
}}
開啟線程:
對象.start() //啟動線程,run函數運行
(2)實現Runnable介面,重寫run函數
開啟線程:
Thread t = new Thread(對象) //創建線程對象
t.start()
(3)實現Callable介面,重寫call函數
Callable是類似於Runnable的介面,實現Callable介面的類和實現Runnable的類都是可被其它線程執行的任務。
Callable和Runnable有幾點不同:
①Callable規定的方法是call(),而Runnable規定的方法是run().
②Callable的任務執行後可返回值,而Runnable的任務是不能返回值的
③call()方法可拋出異常,而run()方法是不能拋出異常的。
④運行Callable任務可拿到一個Future對象,Future表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等
待計算的完成,並檢索計算的結果.通過Future對象可了解任務執行情況,可取消任務的執行,還可獲取任務執行的結果

㈤ java有幾種實現線程的方式

java創建線程的方式有三種
第一種是繼承Thread類 實現方法run() 不可以回拋異常 無返回值答
第二種是實現Runnable介面 實現方法run() 不可以拋異常 無返回值
第三種是實現Callable<T>介面,介面中要覆蓋的方法是 public <T> call() 注意:此方法可以拋異常,而前兩種不能 而且此方法可以有返回值

第三種如何運行呢 Callable介面在util.concurrent包中,由線程池提交
import java.util.concurrent.*;
ExecutorService e = Executors.newFixedThreadPool(10); 參數表示最多可以運行幾個線程
e.submit(); 這個裡面參數傳 實現Callable介面那個類的對象

㈥ java實現線程的兩種方法有什麼區別

為什麼Java要提供兩種方法來創建線程呢?它們都有哪些區別?相比而言,哪一種方法更好呢?

在Java中,類僅支持單繼承,也就是說,當定義一個新的類的時候,它只能擴展一個外部類.這樣,如果創建自定義線程類的時候是通過擴展 Thread類的方法來實現的,那麼這個自定義類就不能再去擴展其他的類,也就無法實現更加復雜的功能。因此,如果自定義類必須擴展其他的類,那麼就可以使用實現Runnable介面的方法來定義該類為線程類,這樣就可以避免Java單繼承所帶來的局限性。

還有一點最重要的就是使用實現Runnable介面的方式創建的線程可以處理同一資源,從而實現資源的共享.

1、通過擴展Thread類來創建多線程

假設一個影院有三個售票口,分別用於向兒童、成人和老人售票。影院為每個窗口放有100張電影票,分別是兒童票、成人票和老人票。三個窗口需要同時賣票,而現在只有一個售票員,這個售票員就相當於一個CPU,三個窗口就相當於三個線程。通過程序來看一看是如何創建這三個線程的。

[html]view plain

  • {

  • privateintticket=100;//每個線程都擁有100張票

  • publicvoidrun(){

  • while(ticket>0){

  • System.out.println(ticket--+"issaledby"+Thread.currentThread());

  • }

  • }

  • }

  • 結果正如前面分析的那樣,程序在內存中僅創建了一個資源,而新建的三個線程都是基於訪問這同一資源的,並且由於每個線程上所運行的是相同的代碼,因此它們執行的功能也是相同的。

    可見,如果現實問題中要求必須創建多個線程來執行同一任務,而且這多個線程之間還將共享同一個資源,那麼就可以使用實現Runnable介面的方式來創建多線程程序。而這一功能通過擴展Thread類是無法實現的

    ㈦ java實現多線程的兩種方法

    Thread t1=new Thread(){
    public void run(){
    System.out.println("第一種方法");
    }
    };
    t1.start();
    Thread t2=new Thread(new Runnable() {
    public void run() {
    System.out.println("第二種方法,可實專現同類下各線屬程數據共享");
    }
    });
    t2.start();

    ㈧ 1. 寫出用Java編寫多線程程序的兩種常用方法

    1、繼承Thread,然後生成對象

    2、用類A實現runable介面,然後用你實現runnable的類A,生成Thread對象 Thread(A對象);

    API 上說明如下:

    創建新執行線程有兩種方法。一種方法是將類聲明為 Thread 的子類。該子類應重寫 Thread 類的
    run 方法。接下來可以分配並啟動該子類的實例。例如,計算大於某一規定值的質數的線程可以寫成:

    classPrimeThreadextendsThread{
    longminPrime;
    PrimeThread(longminPrime){
    this.minPrime=minPrime;
    }

    publicvoidrun(){
    //
    ...
    }
    }

    然後,下列代碼會創建並啟動一個線程:

    PrimeThreadp=newPrimeThread(143);
    p.start();

    創建線程的另一種方法是聲明實現 Runnable 介面的類。該類然後實現 run
    方法。然後可以分配該類的實例,在創建 Thread 時作為一個參數來傳遞並啟動。採用這種風格的同一個例子如下所示:

    implementsRunnable{
    longminPrime;
    PrimeRun(longminPrime){
    this.minPrime=minPrime;
    }

    publicvoidrun(){
    //
    ...
    }
    }

    然後,下列代碼會創建並啟動一個線程:

    rimeRunp=newPrimeRun(143);

    newThread(p).start();

    ㈨ java多線程有幾種實現方法

    java中多線程的實現方法有兩種:
    1.直接繼承thread類;
    2.實現runnable介面同步內的實現方法容有五種:1.同步方法;2.同步代碼塊;3.使用特殊域變數(volatile)實現線程同步;4.使用重入鎖實現線程同步;5.使用局部變數實現線程同步

    ㈩ java中創建線程的兩種方式有什麼區別

    一種是繼承 Thread 類,一種是 實現Runnable 介面,需要重寫或者實現 run()方法。
    沒啥區別,因專為java是單繼承屬的,所以不可能讓所有的類都繼承Thread類,所以必須有這個Runnable 介面。

    一般來說編程都會去 實現Runnble 介面,而不會採用繼承Thread。

    閱讀全文

    與java實現線程的兩種方法相關的資料

    熱點內容
    如何建交一共享文件夾 瀏覽:574
    中文字幕韓語 瀏覽:805
    貴金屬大數據app 瀏覽:726
    如何進行bom數據管理 瀏覽:514
    labviewvi版本轉換 瀏覽:769
    win10傳文件預先佔用空間 瀏覽:527
    java多線程監聽 瀏覽:882
    win10殺手5打不開 瀏覽:10
    數據線016BC是什麼意思 瀏覽:48
    台州百泰網路技術有限公司儲備主管 瀏覽:614
    蘋果也微信語音有風聲 瀏覽:378
    搞笑男同電影最近 瀏覽:637
    javalistmap 瀏覽:174
    藍星小葉主角叫葉楓 瀏覽:334
    win10怎麼把文件改成vbs文件路徑 瀏覽:923
    南城免費的進出口數據平台哪個好 瀏覽:950
    周星馳電影下載文件 瀏覽:600
    qq頭像掛件絕版代碼 瀏覽:604
    帶點黃色的都市小說 瀏覽:725
    java配置文件參數 瀏覽:257

    友情鏈接