[單項選擇題] 為了支持壓棧線程與彈棧線程之間的交互與同步,在下畫線處依次填入的語句是 public class IntStack { private i
2021-07-20
[單項選擇題] 為了支持壓棧線程與彈棧線程之間的交互與同步,在下畫線處依次填入的語句是 public class IntStack { private int idx=0; private int[]data=new int[8]; public ______ void push(int i) { data[idx]=i; idx++; ______ } … }
A.synchronized() notify()
B.synchronized() this.wait()
C.synchronized() this.notify()
D.synchronized() sleep()
正確答案:C
參考解析:一個程序中單獨的、并發(fā)的線程對同一個對象進行訪問的代碼段,稱為臨界區(qū)。在Java語言中,臨界區(qū)可以是一個語句塊或是一個方法,并且用synchronized關(guān)鍵字標識。本程序中push()方法即為臨界區(qū),所以需要用synchronized關(guān)鍵字標識。this.notify()把當前堆棧對象的wait pool中的一個線程釋放到lock pool,等待該堆棧的鎖以便運行。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。