所以在閱讀this後,我對「鎖定」機制有些困惑,或者只是對請求產生了根本性的困惑。獲取對靜態對象的鎖應該阻塞其他請求線程?
給定類的靜態變量是否可以被所有請求訪問(假設一個服務器)?據我所知,他們不是。
並且假設靜態/常量變量不能被多個請求訪問,當我們鎖定(someLockObject)時,它不應該阻塞其他請求,因爲「鎖定」獲得與該對象相關的排它鎖。再次,該對象(即someLockObject)對於我所假設的所有請求都是不同的。
This回答,以及其他一些問題,意味着我對某事有錯。如果「鎖定」僅阻止關鍵部分,意味着所有在「鎖定」代碼塊中執行同一段代碼的線程,那麼爲什麼我們必須阻止對象呢?我自己可能沒有太大的意義。