1. 程式人生 > >Java並發3

Java並發3

縮小 get get() 原因 返回 mar strong set 調用

P685)臨界區

通過使用同步控制塊,而不是對整個方法進行同步控制,可以使多個任務訪問對象的時間性能得到顯著提升。寧願使用同步控制塊而不是對整個方法進行同步控制的典型原因:使得其他線程能更多的訪問(在安全的情況下盡可能多)。

P689)在其他對象上同步

synchronized塊必須給定一個在其上進行同步的對象,並且最合理的方式是,使用其方法正在被調用的當前對象:synchronized(this)。在這種方式中,如果獲得了synchronized塊上的鎖,那麽該對象其他的synchronized方法和臨界區就不能被調用了。因此,如果在this上同步,臨界區的效果就會直接縮小在同步的範圍內。

P690)線程本地存儲

線程本地存儲是一種自動化機制,可以為使用相同變量的每個不同的線程都創建不同的存儲。ThreadLocal對象通常當作靜態域存儲。在創建ThreadLocal時,你只能通過get()和set()方法來訪問該對象的內容,其中,get()方法將返回與其線程相關聯的對象的副本,而set()會將參數插入到為其線程存儲的對象中,並返回存儲中的原有對象。

Java並發3