首页新闻找找看学习计划

java使用synchronized控制并发问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-08-04 16:21

public void saveCoupons() {
        HttpServletRequest request=ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();
        synchronized (this)     
        {  
            if(bln==true){
                bln=false;
               System.out.println(DateFormat.getDateTime());//yyyy-MM-dd HH:mm:ss的日期字符串形式返回
            }else{
                map.put("msg", "fail");
            }
            try {
                  Thread.sleep(1000);
              } catch (InterruptedException e) {
                 e.printStackTrace();
            }
        }
    }

当两个请求并发访问这个action时,输出两个完全一样的时间,并没有间隔1000毫秒,感觉synchronized没起作用

静以修身!的主页 静以修身! | 初学一级 | 园豆:173
提问于:2016-02-02 10:25
< >
分享
所有回答(2)
0

cpu处理时间很快,一样的时间是可能的,输出是秒

如果想试,可以用个全局的整数++

2012 | 园豆:19142 (专家六级) | 2016-02-03 09:01
0

你是针对当前方法所属对象的同一个实例么?

Daniel Cai | 园豆:10374 (专家六级) | 2016-02-04 10:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册