小编And*_*nko的帖子

关于 Atomic boolean 在并发访问完成时的奇怪行为的问题

我得到了这样的代码:

public class ConcurrencyCheck {
    private volatile static AtomicBoolean top=new AtomicBoolean(false);
    private  int i=0;

    public class Toppler extends Thread{
        private final boolean bool;

        public Toppler(boolean myBool,String name) {
            super(name);
            bool=myBool;
        }

        @Override
        public void run() {
            while(!isInterrupted()){

                i++;
                synchronized (top) {
                    if (top.get() == bool) top.set(!top.get());
                    System.err.println(super.getName() + "  "+ bool +"->" + top + ". i is " + i);
                }

                try {
                    sleep(100);
                } catch (InterruptedException e) {
                    break;
                }
            }
        }
    }

    public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java concurrency

6
推荐指数
1
解决办法
64
查看次数

标签 统计

concurrency ×1

java ×1