比方說,我有一個看起來像這樣的一個成員的類:如何使儲物櫃對象靜態影響其行爲?
readonly object _locker;
,我使用這樣同步的代碼塊:
lock (_locker)
{
// Do something
Monitor.Pulse(_locker);
}
這:
lock (_locker)
{
while (someCondition)
Monitor.Wait(_locker);
// Do something else
}
假設我有多個這個特定類的實例,它們都在同一時間運行,使用單獨的線程。
如果我讓鎖櫃對象static
會發生什麼情況,鎖的行爲和Monitor.Wait
和Monitor.Pulse
調用?
static readonly object _locker;
難道他們都突然開始步調一致地工作(例如鎖定的代碼塊需要在物體的所有實例lock
),或有行爲沒有變化?
我見過的大部分代碼示例都使用'static'關鍵字,所以我猜這種類型的投擲我。 –
這兩種形式都被使用,它完全取決於數據。 –