java 構建線程的兩種方式分析

java 構建線程有兩種方式: java

方法1:

  1. 創建一個類繼承Thread;
  2. 在類中重寫Thread類的run方法;
  3. new  一個該類對象;
  4. 執行該對象的start()方法,啓動線程;

方法2: 多線程

  1. 創建一個類實現Runnable()接口,重寫接口run()方法;
  2. 創建一個這樣的類對象,將此對象傳入Thread類的構造方法Thread(Runnabe e)方法中;
  3. 執行對象的start()方法,啓動線程;

public class study_java {
    public static void main(String[] args) { ide

    //方法1:經過實現接口Runnable()的方法來實現多線程       
    //     Runnable runnable=new MyThread();        
    //     new Thread(runnable).start();        
    //     new Thread(runnable).start();        
    //     new Thread(runnable).start();         this

   //方法2:經過重寫Thread類run()方法來實現多線程 spa

     TestThread test1 = new TestThread();
     TestThread test2 = new TestThread();
     TestThread test3 = new TestThread();
     test1.start();
     test2.start();
     test3.start();
    }          
    public static class MyThread implements Runnable{
         //車票數量        
         private int tickets=0;        
         public void run() {
         while(tickets<100){
             System.out.println(Thread.currentThread().getName()+"賣出第【"+tickets+"】張火車票");
             tickets++; 線程

            }         對象

        }               繼承

    }
   
    public static class TestThread extends Thread{
        private int tickets = 0;
       @Override
        public void run() {
           // TODO Auto-generated method stub
           super.run();
           while(tickets < 100){
               System.out.println(this.getName() + "賣出第" + tickets + "張火車皮票");
               tickets++;
          }
      }
    }
} 接口

 如上所示: get

對比上面的兩種方法,發現實現Runnable()接口方法多個線程處理的數據時同一份,而繼承Thread()類的歌線程處理的數據時獨立的。

兩種構造線程的方法的優缺點是:

1 採用Runnable()接口的方法,能夠實現多個對象共同處理一份數據,達到業務和數據的分離,較好的體現了面向對象的思想,而繼承Thread()類的方法,每一個對象處理的數據都不一樣,沒法實現數據共享;

2 採用Runnable()接口的方法,類出了實現Runnable()接口外,還能夠繼承一個類,而繼承Thread()類的方法不能再繼承類了,由於java是但繼承的;

3 相比之下繼承Thread()類的方法的優勢是代碼就夠看起來要清晰些。

其餘優劣還不知,繼續研究中。。。。

相關文章
相關標籤/搜索