[單項(xiàng)選擇題] 為了支持壓棧線程與彈棧線程之間的交互與同步,在下畫線處依次填入的語句是 public class IntStack { private i
2021-07-20
[單項(xiàng)選擇題] 為了支持壓棧線程與彈棧線程之間的交互與同步,在下畫線處依次填入的語句是 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
參考解析:一個(gè)程序中單獨(dú)的、并發(fā)的線程對(duì)同一個(gè)對(duì)象進(jìn)行訪問的代碼段,稱為臨界區(qū)。在Java語言中,臨界區(qū)可以是一個(gè)語句塊或是一個(gè)方法,并且用synchronized關(guān)鍵字標(biāo)識(shí)。本程序中push()方法即為臨界區(qū),所以需要用synchronized關(guān)鍵字標(biāo)識(shí)。this.notify()把當(dāng)前堆棧對(duì)象的wait pool中的一個(gè)線程釋放到lock pool,等待該堆棧的鎖以便運(yùn)行。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。