执行如下程序, 输出结果是()

class Test {
	private int data;
	int result = 0;
	public void m() {
		result += 2;
		data += 2;
	System.out.print(result + " " + data);
	}
}
class ThreadExample extends Thread {
	private Test mv;
	public ThreadExample(Test mv)  {
	this.mv = mv;
	}
	public void run() {
		synchronized(mv){
			mv.m();
		}
	}
}
class ThreadTest {
	public static void main(String args[]) {
		Test mv = new Test();	// 声明并初始化对data赋默认值 
		Thread t1 = new ThreadExample(mv);
		Thread t2 = new ThreadExample(mv);
		Thread t3 = new ThreadExample(mv);
		t1.start();
		t2.start();
		t3.start();
	}
}

A. 0 22 44 6

B. 2 42 42 4

C.2 24 46 6

D. 4 44 46 6

解析: 

  1. 使用synchronized关键字加同步锁, 使三个线程一次顺序操作m()方法
  2. t1.start();     使得result = 2; data = 2
  3. t2.start();     使得result = 4; data = 4;
  4. t3.start():     使得result = 6; data = 6;
  5. System.out.print(result+" "+data);  print方法, 不会自动换行, 所以输出结果是2 24 46 6
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值