阅读下面实现堆栈类并发控制的部分代码 public class DataStack }  private int idx=0;  private int[] data=new int[8];  public void push(in

admin2012-03-21  53

问题 阅读下面实现堆栈类并发控制的部分代码    public class DataStack }     private int idx=0;     private int[] data=new int[8];     public void push(int i) {      ______ {       data[idx]=I:       idx++;      }     }     …    }    程序中下画线处应填入的正确选项是

选项 A、synchronized
B、synchronized(this)
C、synchronized()
D、synchronized(idx)

答案B

解析 在Java中,使用synchronized关键字标识临界区。Java平台将每个由synchronized语句设置的对象设置一个锁,称为对象锁,它是一种独占的排他锁,即同一时刻最多只能有一个线程获取该锁。为了能够正常地使用对象锁,对共享数据的所有访问都必须在临界区内,同时临界区的共享数据必须是私有的,确保只能通过对象的方法才能访问到。本程序中,下画线后边的代码即为临界区,所以需要用synchronized关键字标识。
转载请注明原文地址:https://kaotiyun.com/show/662p777K
0

最新回复(0)