1. 程式人生 > >關乎Java多執行緒+Runnable和Thread…

關乎Java多執行緒+Runnable和Thread…

關乎Java多執行緒+Runnable和Thread的區別



兩種方法

    一種是繼承自Thread類.Thread 類是一個具體的類,即不是抽象類,該類封裝了執行緒的行為.要建立一個執行緒,程式設計師必須建立一 個從 Thread 類匯出的新類.程式設計師通過覆蓋 Thread 的 run() 函式來完成有用的工作.使用者並不直接呼叫此函式;而是通過調 用 Thread 的 start() 函式,該函式再呼叫 run().
    
    例如: 

    public class Test extends Thread{
      public Test(){
      }
      public static void main(String args[]){
        Test t1 = new Test();
        Test t2 = new Test();
        t1.start();
        t2.start();
      }
      public void run(){
        //do thread's things
      }
    }



--------------------------------------------------------------------------------

    
    另一種是實現Runnable介面,此介面只有一個函式,run(),此函式必須由實現了此介面的類實現.
    
    例如: 

    public class Test implements Runnable{
      Thread thread1;
      Thread thread2;
      public Test(){
        thread1 = new Thread(this,"1");
        thread2 = new Thread(this,"2");
      }
      public static void main(String args[]){
        Test t = new Test();
        t.startThreads();
      }
      public void run(){
      

相關推薦

關乎Java執行+RunnableThread

兩種方法     一種是繼承自Thread類.Thread 類是一個具體的類,即不是抽象類,該類封裝了執行緒的行為.要建立一個執行緒,程式設計師必須建立一 個從 Thread 類匯出的新類.程式設計師通過覆蓋 Thread 的 run() 函式來完成有用的工作.使用者並不直接呼叫此函式;而是通過調

Java執行程式設計之ThreadRunnable的區別

Thread 和Runnable的最大區別就在於共享資料。每當你new一個Thread的時候,虛擬機器會給你new出來的Thread分配一塊單獨的記憶體。Thread和Thread物件之間的資料不共享。如下: Example1: class Thread1 extends

再次理解java執行的實現 Thread Runnable的區別

Thread和Runnable的區別如果一個類繼承Thread,則不適合資源共享。但是如果實現了Runable介面的話,則很容易的實現資源共享。main函式,例項化執行緒物件也有所不同,extends Thread :t.start();implements Runnable

Java執行——RunnableThread的區別

Runnable 是介面 Thread 是類,且實現(implement)了Runnable介面 Thread原始碼: public class Thread     implements Runnable {     private static class Cach

Java 執行:extends Thread Class & implements Runnable Interface

1. extends Thread Class 2. implements Runnable Interface3. Runnable is more flexible than Thread [ extends Thread Class ]  - extends Th

Java執行Runnable介面與Thread類,以及synchronied關鍵字

Java多執行緒實現有兩種方式一個是實現Runnable介面一個是繼承Thread類 如果只是為了實現Thread的執行過程,那麼沒有必要從Thread中派生,因為是是實現Runnable介面的物件代表的是一個計算任務,Thread類對應任務的執行者。 如果執行緒類繼承Th

Java 執行 joininterrupt 方法

簡述: 使用Java多執行緒中join和interrupt函式 《Java程式設計思想》 P669 ~ P670 一個執行緒可以再其他執行緒上呼叫join()方法,其效果是等待一段時間直到第二個執行緒結束才繼續執行。 如果某個執行緒在另一個執行緒t上呼叫t.join(), 此

Java執行原理及Thread類的使用

一、程序與執行緒的區別 1.程序是應用程式在記憶體總分配的空間。(正在執行中的程式) 2.執行緒是程序中負責程式執行的執行單元、執行路徑。 3.一個程序中至少有一個執行緒在負責程序的執行。 4.一個程序中有多個執行緒在執行的程式,為多執行緒程式。 5.多執行緒技術是為了解決多部分程式碼同時執行。

執行--thisThread.currentThread()詳解

在看多執行緒程式設計核心技術的時候,有一段程式碼讓我很困惑,所以在這裡記錄一下。 public class isalive { public static void main(String[] args) { // TODO Auto-generated method stub //T

談談執行RunnableCallable介面

Runnable介面程式碼 public interface Runnable { public abstract void run(); } Callable介面程式碼 public interface Callable<V> { V c

java 執行之利用Thread類建立執行(Day02)

前言:在一個程式中,如果一次只完成一件事情,很容易實現,但現實生活中很多事情都是同時進行的,所以在java中為了模擬這種狀態,引入了執行緒機制,簡單的說,當程式同時完成很多事情時,就是所謂的多執行緒。 實現執行緒的兩種方式:一是通過繼承Thread類來建立執行緒,另一種方法

[Android] 執行-HandlerThread的關係

多執行緒的部分,有幾個名詞 Runnable 工作包 (要做的事情) Thread 執行緒 Handler Message ————————————————————————– Runnable 就是像是專案管理裡的工作包,說穿了就是要做的事情啦,像是這樣 private Runnable r1=new

Java執行同步非同步詳解

1. 多執行緒併發時,多個執行緒同時請求同一資源,必然導致此資源的資料不安全。 2. 執行緒池 在WEB服務中,對於web伺服器的響應速度必須儘可能的快,這就容不得在使用者提交請求按鈕後,再建立執行緒提供服務。為了減少使用者的等待時間,執行緒必須預先建立,放線上程池中,執行

Java 執行 生產者消費者 佇列

    wait()和notifyAll()方法以一種非常低階的方式解決了任務互操作問題,即每次互動時都握手。在許多情況下,你可以瞄向更高的抽象級別,使用同步佇列來解決任務協作問題,同步佇列在任何時刻都只允許一個任務插入或移除元素。在java.util.concurrent

java---執行sleep()setPriority()方法

package ThreadIO2_1.Thread.schedule.v1; public class MyRunner extends Thread { private static Obje

java執行FutureCallable類的解釋與使用

一,描述     ​在多執行緒下程式設計的時候,大家可能會遇到一種需求,就是我想在我開啟的執行緒都結束時,同時獲取每個執行緒中返回的資料然後再做統一處理,在這樣的需求下,Future與Callable的組合就派上了很大的用場。也有人會說,我可以使用同步來完成這個需求啊,一

Java執行-生產者消費者

標籤(空格分隔): java thread 簡介: 隨著作業系統的不斷更新迭代,多執行緒程式設計已經變的十分常見,java虛擬機器的多執行緒一般也是建立在作業系統本地native執行緒之上的,從而不必自己管理執行緒間的切換,直接交由本機作業系統進行排程和

java執行run()start()的區別

其實,run()和start()區別很簡單。 當你啟動執行緒,使用start(),系統會把run()方法當成執行緒執行體來處理,這是正常的,也是正確的情況。但是,當你啟動執行緒時,呼叫run()方法,系統run()方法會立即執行,但是這時候系統會把run()方法當成普通的方

java執行2:Thread中的例項方法

1.start()   start()方法的作用講白了 就是 “執行緒規劃器”,此執行緒可以執行,正在等待CPU呼叫執行緒物件得run()方法,產生一個非同步執行的效果。 結論:CPU執行哪個執行緒的程式碼具有不確定性。 啟動的順序是 m0 m1 m2 但是輸出的結

java 執行學習(JavaThread Runnable的區別)

今天剛學習java多執行緒 在網上查了幾篇博文學習,個人覺得寫的不錯,但是有的地方有個疑問:Java中Thread 和 Runnable的區別。 然後,在網上查詢相關資料,發現幾乎都是一樣的。 下面貼出相關的程式碼: 如果一個類繼承Thread,則不適合資源共享。但是如果實現了