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

que*_*orn 2 java multithreading synchronization

public class counting
{
  private static int counter = 0;

  public void boolean counterCheck(){
  counter++;
  if(counter==10)
  counter=0;
  }
}
Run Code Online (Sandbox Code Playgroud)

方法counterCheck可以由我的应用程序中的多个线程访问.我知道静态变量不是线程安全的.如果有人可以通过示例帮助我,或者告诉我为什么必须同步方法或阻止,我将不胜感激.如果我不同步会发生什么?

Dav*_*rtz 6

它显然不是线程安全的.考虑两个完全并行运行的线程.如果计数器是9,它们每个都会递增计数器,导致计数器为11.它们中的任何一个都不会看到该计数器等于10,因此计数器将从那时开始递增而不是按预期包装.