作者tkcn (小安)
看板java
標題Re: [問題] 老梗synchronized
時間Thu Oct 18 20:28:43 2007
※ 引述《easy1 (e :) y)》之銘言:
: 那 bar1 和 bar2 可以 被不同thread 同時執行嗎?
: 我認為no 因為synchronized會用同樣的lock object
: 而且 實驗後也是不行
: 只是想確認一下 thanks
沒錯,是不行
synchronized void bar1() { ... }
這樣的寫法意義上與下面的寫法相同
void bar1(){
synchronized(this){
...
}
}
被鎖住的是 Object,不是 Method。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.239
推 H45:說「把 Thread 鎖在 Object 上面」會不會比較適當? 10/18 20:30
推 wctang:應該是 Object 被鎖, Thread 因無法再次上鎖而停下來等 10/18 22:42
推 xlk:所以建立不同的Object,就能一個跑bar1一個跑bar2? 10/20 11:34