1. 程式人生 > >線程編程的兩種方法

線程編程的兩種方法

clas ber exe 調用 .... 調度 void runable 線程編程

寫一個類,繼承Thread類,覆蓋Thread類中繼承來的run()方法,這樣就寫好了自定義的線程類。

繼承java.lang.Thread類:


    class MyThread extends Thread{

        public void run(){        
       //覆蓋run(),線程體方法,自身其實就是普通的方法

            .......

        }

    }

啟動線程:


    public class TestThread{

        public static void main(){

            Thread t1=new Mythread();

            T1.start();        
           //調用start()來啟動線程,線程啟動方法,向線程調度器說明當前線程已經準備好了,是一種可運行狀態

        }

    }

寫一個類,實現Runable接口,實現其中的run()方法。這種方法寫好的類的對象需要作為線程類創建對象時構造方法的參數。

實現java.lang.Runnable接口:


    Class MyThread  implements Runnable{

        public void run(){

        }

    }

啟動線程:


    public class TestThread{

        public static void main(){

            Runnable myThread = new MyThread();

            Thread t = new Thread(myThread);

            t.start();

        }

    }

從java5開始,還有如下一些線程池創建多線程的方式:


ExecutorService pool = Executors.newFixedThreadPool(3)

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

  pool.execute(new Runable(){
    public void run(){

    }
  });

}

Executors.newCachedThreadPool().execute(new Runable(){
    public void run(){

    }
});

Executors.newSingleThreadExecutor().execute(new Runable(){
    public void run(){

    }
});

線程編程的兩種方法