3
回答
求帮助,一个简单加法的问题
华为云实践训练营,热门技术免费实践!>>>   

class Signal {
	static private Signal signal = new Signal();
	private Signal(){}
	static public Signal newInstance(){
		return signal;
	}
	public void doLoogTimeTask(){
		long sum = 0;
		for (int i = 0; i < Integer.MAX_VALUE; i++) {
			sum += i;
		}
		System.out.println(sum);
	}
}
for (int i = 0; i < 10; i++) {
    Signal.newInstance().doLoogTimeTask();
}
为什么会输出不同的结果?

还有想问下,如果在多线程里使用单例可能会产生什么样的问题?




<无标签>
举报
gongweixin
发帖于4年前 3回/94阅

以下是问题补充:

  • @gongweixin :我机器上的结果 2305842980222664795 2305842973780213896 2305843005992468481 2305843005992468481 2305843005992468481 2305843005992468481 2305843005992468481 2305843005992468481 2305843005992468481 2305843005992468481 (4年前)
顶部