package NewPkg;
class sample extends Thread{
synchronized static void show()
{ //synchronized(this){
for(int i=0;i<5;i++)
{
System.out.println(i);
}
//}
}
}
class ThreadOne extends Thread {
public void run()
{
System.out.println("t1");
sample.show();
}
}
class ThreadTwo extends Thread {
public void run()
{
System.out.println("t2");
sample.show();
}
}
public class A {
public static void main (String args[]){
ThreadOne t1 = new ThreadOne();
ThreadTwo t2 = new ThreadTwo();
t1.start();
t2.start();
}
}
有人請檢查此代碼並告訴我是否有任何錯誤。 嘗試刪除「同步靜態」內容並執行,檢查同步塊和方法場景。 當我執行程序,很多時候我看到相同的輸出顯示...我想知道多線程概念中的同步靜態,同步塊和方法使用之間的確切區別。我看到下面代碼中的同步靜態,同步方法和同步塊方案的輸出相同
這不是建議問題的重複內容,因爲同步靜態方法和同步實例方法之間存在功能差異,並且在建議的重複內容中沒有涵蓋該差異。 –
@WarrenDew例如,它在後面的答案[peter's](http://stackoverflow.com/a/574258/438154)中有介紹。 –