java synchronized 簡單示例

2021-07-10 20:17:20 字數 754 閱讀 8010

public

class sequentialexample

}class box

public string setname(string name)

public string getname() }

class sequential extends thread

public

void

run()

else

if(getname().equals("b"))

}catch(interruptedexception e)

//可以刪去}

system.out.println("訪問:" + getname());

} }}

沒有加synchronized 結果如下:

加了synchronized結果如下:

初步結論是:

加了synchronized(object){}同步塊之後

在多個執行緒同時執行這個同步塊內的語句時,同時且只有乙個執行緒可以操作這個同步塊(?且對object這個物件上了鎖,也可以說這個執行緒取得了這個object物件鎖),當乙個執行緒執行完這個同步塊之(也釋放這個object物件鎖)後,另乙個程序才可以執行這個同步塊。這樣就可以保證此時只有乙個執行緒可以更改object 這個物件的屬性。達到執行緒同步。

?當然還有跟高階的同步就是加入同步因子(訊號量),這樣可以完成更高階的訊號量

前面有?的句子表示是不確定的語句。

NSDictionary plist簡單示例

在iphone ipad工程裡面,新增 file other property list,例如 test.plist,然後在其中新增3個專案 key name,date,dept,並填充value值。以下為對此test.plist檔案的一系列常用操作 myname,mydate,mydept為定義的...

NSDictionary plist簡單示例

在iphone ipad工程裡面,新增 file other property list,例如 test.plist,然後在其中新增3個專案 key name,date,dept,並填充value值。以下為對此test.plist檔案的一系列常用操作 myname,mydate,mydept為定義的...

Java synchronized簡要總結

synchronized修飾的方法,記住 1.非靜態方法 同步鎖synchronized無論是用於方法 synchronized method 還是類 synchronized class 1 如果該類物件是唯一的,比如 省略兩個被同步鎖修飾的test1和test2方法和main方法和類名tests...