weixin_40985643 2017-11-21 06:27 采纳率: 0%
浏览 788

【请教】关于Java多线程同步

多线程类代码:
public class Number implements Runnable {
private String symbol;
private int num;
int data = 0;
/**
*
* @param symbol符号
* @param num数值
/
public Number(String symbol, int num) {
super();
this.symbol = symbol;
this.num = num;
}
@Override
public void run() {
synchronized (this) {
switch(symbol) {
case "+":
data += num;
break;
case "
":
data *= num;
break;
case "/":
data /= num;
break;
}
System.out.println("数据源发生变化,变化后的数字是:" + data);
}

}

}
测试类代码:
public class Test {
public static void main(String[] args) {
Number num1 = new Number("+", 10); //线程1 加10
Number num2 = new Number("+", 20); //线程2 加20
Number num3 = new Number("*", 3); //线程3 乘3
Number num4 = new Number("/", 4); //线程4 除以4
new Thread(num1).start();
new Thread(num2).start();
new Thread(num3).start();
new Thread(num4).start();
}
}
控制台输出:
数据源发生变化,变化后的数字是:10
数据源发生变化,变化后的数字是:0
数据源发生变化,变化后的数字是:20
数据源发生变化,变化后的数字是:0


不知道为什么老是同步不了

  • 写回答

7条回答 默认 最新

  • weixin_40985643 2017-11-21 06:31
    关注

    ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511245885_236751.png)图片说明

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!