[单项选择题] 为了支持压栈线程与弹栈线程之间的交互与同步,在下画线处依次填入的语句是 public class IntStack {  private int idx=0;  private

17 查阅

[单项选择题] 为了支持压栈线程与弹栈线程之间的交互与同步,在下画线处依次填入的语句是 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,等待该堆栈的锁以便运行。

计算机考试