Java傳統執行緒建立方式和互斥

2021-08-01 06:41:33 字數 1568 閱讀 7366

* 多執行緒並不會提高執行效率,效能更低

* 多執行緒會搶占cpu的資源,會占用更多的伺服器頻寬,這樣看起來就感覺會更快

建立執行緒有兩種方式:一種是建立thread的子類,覆蓋thread的run方法,還有一種是構造器傳入runnable物件,使用runnable物件的run方法:

public class traditionlthread  catch (exception e) 

system.out.println(thread.currentthread().getname());}}

};thread.start();

// 原始碼裡邊是runnable物件不為null就執行runnable的run方法

// 方式二:建構函式中傳入runnable物件

thread thread2 = new thread(new runnable() catch (exception e)

system.out.println(thread.currentthread().getname());}}

});thread2.start();

/** 兩種方式的區別:

* 第二種方式更加體現物件導向的方式

* * */

// 同時有子類的run方法和runnable物件,那麼程式會執行子類的run方法,子類的方法會覆蓋父類的

new thread(new runnable() catch (exception e)

system.out.println("runnable thread:" + thread.currentthread().getname());}}

}) catch (exception e)

system.out.println("子類 thread:" + thread.currentthread().getname());}};

}.start();

}}

執行緒的互斥:使用sychronized關鍵字

/**

* 傳統執行緒互斥技術

* 執行緒安全問題可以用銀行轉賬來解釋

* @author admin

*/public class traditionalsychronized

/*** 這樣寫會出現錯亂

*/static class output

}}).start();

for(int i= 0 ; i< 50 ; i++) }

static class business catch (interruptedexception e)

}for(int j=0; j<10; j++)

shouldsub = false;

this.notify();

} public synchronized void main(int i) catch (interruptedexception e)

}for(int j=0; j<5; j++)

shouldsub = true;

this.notify();

} }}

傳統執行緒的互斥

傳統的執行緒互斥的乙個例子 public class traditionalthreadsynchronized 解決方法 private void init catch interruptedexception e out.output google start 執行緒二 內部類不能建立靜態方法和...

傳統執行緒的建立

編寫執行緒執行時執行的 有兩種方式 一種是建立thread子類的乙個例項並重寫run方法,第二種是建立類的時候實現runnable介面 一 建立thread子類 1.繼承thread類建立 public class mythread extends thread public class main ...

java 傳統多執行緒

傳統多執行緒 public class traditionalthread catch interruptedexception e system.out.println 1 thread.currentthread getname system.out.println 2 this.getname...