建立線程的兩種方式,及線程同步

一、建立線程的兩種方式:this

(1)建立Thread類的子類,重寫run方法線程

class Thread1 extends Thread{       public void run(){ 重寫方法體 }        }對象

在main方法中:接口

Thread1 t1 = new Thread1 (); 同步

 t1.start();string

(2)實現Runnable接口,重寫run方法,再傳入Thread類的實例參數中class

class Thread2 implements Runnable{  public void run(){   重寫方法體}   }方法

在main方法中:im

Thread2  t2 = new Thread2 ();call

Thread t = new Thread(t2);

t.start();

 

二、線程同步

(1)同步方法:使調用該方法的線程均能得到對象的鎖

class Share{   synchronized void print(String str){ 方法體 }}

被synchronized 的方法,一旦一個線程進入實例的同步方法中,直到當前線程執行完這個方法,其餘線程才能進入。但該實例的非同步方法仍是能夠被其餘線程調用的

(2)同步塊

關聯(1)中的類,class caller implements Runnable{

  string str;

  Share s;

  Thread t;

  public caller(Share s,String str){

    this.s = s;

    this.str = str;

    t = new Thread(this);

    t.start();

  }

  public void run (){

    synchronized(s){    //同步share對象

      s.print(str);

  }

  }

}

相關文章
相關標籤/搜索