多线程应用程序中的静态计数器线程安全吗?

2023-12-03

public class counting
{
  private static int counter = 0;

  public void boolean counterCheck(){
  counter++;
  if(counter==10)
  counter=0;
  }
}

方法 counterCheck 可以由我的应用程序中的多个线程访问。我知道静态变量不是线程安全的。如果有人可以帮助我举例或给出我必须同步方法或块的理由,我将不胜感激。如果我不同步会发生什么?


显然它不是线程安全的。考虑两个完全并行运行的线程。如果计数器为 9,他们将各自递增计数器,导致计数器为 11。然后他们都不会看到该计数器等于 10,因此计数器将从那时起继续递增,而不是按预期换行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多线程应用程序中的静态计数器线程安全吗? 的相关文章

随机推荐