itgle.com

为了支持压栈线程与弹栈线程之间的交互与同步,在下画线处依次填入的语句是 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

题目

为了支持压栈线程与弹栈线程之间的交互与同步,在下画线处依次填入的语句是 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
解析:一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。在Java语言中,临界区可以是一个语句块或是一个方法,并且用synchronized关键字标识。本程序中push()方法即为临界区,所以需要用synchronized关键字标识。this.notify()把当前堆栈对象的wait pool中的一个线程释放到lock pool,等待该堆栈的锁以便运行。
更多“为了支持压栈线程与弹栈线程之间的交互与同步,在下画线处依次填入的语句是public class IntStack ”相关问题
  • 第1题:

    为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下画线处依次填入的语句是( )。

    A.synchronized( )

    B. notify( )

    C.synchronized this.wait( )

    D.svnchronized this.notify( )

    E.Serializable sleep( )


    正确答案:B
    在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程等待并暂时释放共享数据对象的锁。

  • 第2题:

    为了支持压栈线程与弹栈线程之间的交互与同步,应在下画线处填入的选项是( )。 public class StackTest{ private int idx=0; private int[]data=new int[8] public void push(int i){ synchronized(this)( ; data(idx)=i: idx++: } } }… …

    A.this.notify

    B.interrupt

    C.this.wait

    D.sleep


    正确答案:A
    A。【解析】当一个线程使用的同步方法中用到某个变量,而此时有需要其他线程修改后才能符合本线程的需要,那么可以使用wait方法,wait方法的作用是使本线程等待,并允许其他线程使用此同步方法。当其他线程使用完后应使用notify或者notifyAll方法允许其他线程使用此同步方法。Interrupt方法的作用是在run方法执行完之前就消灭此线程,而sleep方法的作用是延迟一段时间后执行。所以本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。

  • 第3题:

    ( 31 ) 为了支持压栈线程与弹栈线程之间的交互与同步 , 在程序的下划线处依次填入的语句是

    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()


    正确答案:B

  • 第4题:

    为了支持压栈线程与弹栈线程之间的交互与同步,应 在下画线处填入的选项是( )。 public class StackTest{ private int idx=0; private int[]data=new int[8] public void push(int i){ synchronized(this){ ; data(idx)=i: idx++: } } }……

    A.this.notify

    B.interrupt

    C.this.wait

    D.sleep


    正确答案:A
    A。【解析】当一个线程使用的同步方法中用到某个变量,而且需要其他线程修改此变量后才能复合本线程的需要,那么可以使用wait方法。wait方法的作用是使本线程等待,并允许其他线程使用此同步方法。当其他线程使用完后应使用notify或者notifyAll方法允许其他线程使用此同步方法。Interrupt方法的作用是在run方法执行完之前就消灭此线程,而sleep方法的作用是延迟一段时间后执行。因为本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。

  • 第5题:

    为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下画线处依次填入的语句是( )。 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.Serializable sleep


    正确答案:B
    B。【解析】在Synchronized块中等待共享数据的状态改变时调用wait方法,这样该线程等待并暂时释放共享数据对象的锁。