[單項選擇題] 閱讀下面實現(xiàn)堆棧類并發(fā)控制的部分代碼 public class DataStack private int idx=0; priva
2021-07-20
[單項選擇題] 閱讀下面實現(xiàn)堆棧類并發(fā)控制的部分代碼
public class DataStack
private int idx=0;
private int[] data=new int[8];
public void push(int i)
______
data[idx]=I:
idx++;
…
程序中下畫線處應(yīng)填入的正確選項是
A. synchronized B) synchronized(this) C) synchronized() D) synchronized(idx)
正確答案:B
參考解析:在Java中,使用synchronized關(guān)鍵字標識臨界區(qū)。Java平臺將每個由synchronized語句設(shè)置的對象設(shè)置一個鎖,稱為對象鎖,它是一種獨占的排他鎖,即同一時刻最多只能有一個線程獲取該鎖。為了能夠正常地使用對象鎖,對共享數(shù)據(jù)的所有訪問都必須在臨界區(qū)內(nèi),同時臨界區(qū)的共享數(shù)據(jù)必須是私有的,確保只能通過對象的方法才能訪問到。本程序中,下畫線后邊的代碼即為臨界區(qū),所以需要用synchronized關(guān)鍵字標識。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。