移动端

  • 题王微信公众号

    题王微信公众号

    微信搜“题王网”真题密题、最新资讯、考试攻略、轻松拿下考试

多选题

public class Transfers {  public static void main(String[] args) throws Exception {  Record r1 = new Record();  Record r2 = new Record();  doTransfer(r1, r2, 5);  doTransfer(r2, r1, 2);  doTransfer(r1, r2, 1);  // print the result  System.out.println(”rl = “ + r1.get() +“, r2=” + r2.get());  }  private static void doTransfer(  final Record a, final Record b, final int amount) {  Thread t = new Thread() {  public void run() {  new Clerk().transfer(a, b, amount);  }  };  t.start();  }  }  class Clerk {  public synchronized void transfer(Record a, Record b, int amount){  synchronized (a) {  synchronized (b) {  a.add(-amount);  b.add(amount);  }  }  }  }  class Record {  int num=10;  public int get() { return num; }  public void add(int n) { num = num + n; }  }  If Transfers.main() is run, which three are true?()

发布日期:2022-06-23

public class Transfers {  public static void main(...
A

The output may be “r1 = 6, r2 = 14”.

B

The output may be “r1 = 5, r2 = 15”.

C

The output may be “r1 = 8, r2 = 12”.

D

The code may run (and complete) with no output.

E

The code may deadlock (without completing) with no output.

F

M IllegalStateException or InterruptedException may be thrown at runtime.

标签: "暂无标签"

题王网让考试变得更简单

扫码关注题王,更多免费功能准备上线!