[問題] synchronized(lock){lock.wait()}
//Thread A
synchronized(lock){
lock.wait();
}
//Thread B
synchronized(lock){
lock.notify();
}
想請問 Thread A先跑 所以先call lock.wait()
後來Thread B跑
我想請問 B能夠進到synchronized裡嗎?
寫了程式測一下 似乎是可以的
也看過一些synchronized 是這樣寫的
請問這樣寫的話是正確的嗎
會不會有哪些side effect
另外 如果這樣是ok 的
那也就是說Thread A在wait時release了lock
但在Thread B notify時 會把A wake up
但此時B已經進到synchronized裡面
那這時lock是A 還B hold 的呢???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.70.77.224
推
10/09 10:08, , 1F
10/09 10:08, 1F
推
10/09 10:45, , 2F
10/09 10:45, 2F
→
10/09 10:46, , 3F
10/09 10:46, 3F
推
10/09 12:26, , 4F
10/09 12:26, 4F
→
10/09 12:28, , 5F
10/09 12:28, 5F
推
10/09 12:32, , 6F
10/09 12:32, 6F
→
10/09 12:33, , 7F
10/09 12:33, 7F
推
10/09 12:51, , 8F
10/09 12:51, 8F
推
10/09 12:56, , 9F
10/09 12:56, 9F
推
10/09 16:51, , 10F
10/09 16:51, 10F
→
10/09 16:52, , 11F
10/09 16:52, 11F
推
10/10 01:08, , 12F
10/10 01:08, 12F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 5 篇):