java 多线程同步 synchronized 为什么将vehicleSum换成vehicleSy就可以正确的进行同步了

 手机用户2502875017 发布于 2022-10-29 22:26

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() ;
            
    }
      
}

}

1 个回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有