保证原子性的解决方案:加锁


package test01;
//2015年笔记
//实现原子性的操作方案:加锁
//但是这种方案性能比较差
public  class  Test{
    public static  void main(String[] args){
        Runnable target =  new Myrunnable();
        //启动100个线程
        for(int i =0;i<=100;i++){
            new Thread(target).start();
        }
    }
}
class Myrunnable implements Runnable{
    private volatile int count;//volatitle虽然能保证变量的可见性,但是不能保证操作的原子性
    @Override
    public void run(){
        synchronized ("mm"){ //synchronized加锁
            for(int i =1;i<=100;i++){
                count++;
                System.out.println("count====>"+count);
            }
        }
    }
}

保证原子性的解决方案:加锁(图1)

您可能还会对下面的文章感兴趣: