java 多线程同步 synchronized 为什么将vehicleSum换成vehicleSy就可以正确的进行同步了
怪我咯
怪我咯 2017-04-17 17:23:45
[Java讨论组]

public class SaveDatabasePlanCache {


private static Integer vehicleSum=new Integer(0);

private static Integer vehicleSy=new Integer(0);
 

public static Integer getVehicleSum() {
        return vehicleSum ;
}

public  static void  setVehicleSum(Integer vehicleSum) 
{
    

    for(int i = 0 ; i < 100000;i++){}
    SaveDatabasePlanCache.vehicleSum = vehicleSum;
      
    
}




public static void main(String[] args) throws Exception {
    
     
    for(int i = 0 ; i < 30 ; i++){
         
        new Thread(new Runnable() 
        {
            public void run() {
                 
                for(int i = 0 ; i < 20 ;i ++){
                       
                        synchronized (vehicleSum) {
                            int nim = SaveDatabasePlanCache.getVehicleSum()+1 ;
                            SaveDatabasePlanCache.setVehicleSum(nim);
                            System.out.println(SaveDatabasePlanCache.getVehicleSum());
                        }
                        
                        
                    }
                       
            }
        } ).start() ;
            
    }
      
}

}

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号