下面的**建立了兩個執行緒,使用synchronized 要保證執行緒各自輸出完整的字串。
但是靜態類中不能使用this,而要使用位元組碼。
package cn.synchronised;
import cn.synchronised.traditionalsynchronsied.outputer;
public class traditionalsynchronsied2
public void init() catch (interruptedexception e)
out.output3("lixiaoli");}}
}).start();
/*** 執行緒2 列印guoming
*/new thread(new runnable() catch (interruptedexception e)
out.output4("guoming");}}
}).start();
}static class outputer
system.out.println();}}
public static synchronized void output4(string name)
system.out.println();}}
}
基於synchronized修飾靜態和非靜態方法
前言 synchronized修飾非靜態方法 synchronized修飾非靜態方法,實際上是對呼叫該方法的物件加鎖,俗稱 物件鎖 j a中每個物件都有乙個鎖,並且是唯一的。假設分配的乙個物件空間,裡面有多個方法,相當於空間裡面有多個小房間,如果我們把所有的小房間都加鎖,因為這個物件只有一把鑰匙,因...
乙個例項中,多個synchronized方法的呼叫
public class threada extends thread public void run public class threadb extends thread public void run public class run 如上所示,myobject類有兩個方法,分別建立兩個執行緒...
11 方法,靜態 非靜態方法
public class demo11 修飾符 public 公共的,可以在其他類中呼叫到此方法 有static修飾的方法就是靜態方法 沒有static修飾的方法就是非靜態方法 返回值 void是空返回值 可以return 不需要return值,如main方法不能return值 引數 可以是以下型別...