多线程异步调用的问题

请改造以下类,使之在多线程异步调用时,而不会出数据覆盖,即并发冲突
pulbi class Math {
private static int result = 0;
public static int sum(int a, int b){
result = a + b;
return result;
  }
}
请教大神 怎么做


慕勒3428872
浏览 538回答 1
1回答

慕码人2483693

如果不考虑同步控制粒度问题,直接把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;}}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java