下边这个类的getNum方法有多个线程同时调用时num变量线程安全吗?

后厂鼓励师 发布于 2017/08/29 18:07
阅读 124
收藏 0

public class TestObject {
	
	private static int num = 0;
	
	public static int getNum(){
		
		if(num<100){
			return num++;
		}
		if(num == 100){
			num = 0;
			return 100;
		}
		return 0;
	}
}

 

加载中
1
赵_腾飞
赵_腾飞

肯定不安全呀

0
我今年大三
我今年大三

如果并发够大的话 num可以是任何数。。并且 。。。很容易超过100 然后getNum都是0。。。

我今年大三
我今年大三
- - 或者 你可以 int num=this.num++ 然后在if(num<100)
我今年大三
我今年大三
简单点就是。public static synchronized int getNum
后厂鼓励师
后厂鼓励师
该如何解决
返回顶部
顶部