为了账号安全,请及时绑定邮箱和手机立即绑定

多线程异步调用的问题

多线程异步调用的问题

慕勒3428872 2019-04-18 19:19:28
请改造以下类,使之在多线程异步调用时,而不会出数据覆盖,即并发冲突 pulbi class Math { private static int result = 0; public static int sum(int a, int b){ result = a + b; return result;   } } 请教大神 怎么做
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

如果不考虑同步控制粒度问题,直接把synchronized(Math.class) 加在当前类定义上的,是可行的

当然控制同步的代码段越小越好。synchronized控制的范围越小越好(实现方式有很多种)

最好是手动建个同步锁,
如:
public class Math {
private static int result = 0;
public static final Object lock1 = new Object();

public static int sum(int a, int b){
synchronized (lock1) {
result = a + b;
return result;
}

}
}


查看完整回答
反对 回复 2019-05-06
  • 1 回答
  • 1 关注
  • 536 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信