private ConcurrentHashMap<String, Locker> relation = new ConcurrentHashMap<String, Locker>();

protected void doGet(HttpServletRequest request, final HttpServletResponse response) {

    final String id = request.getParameter("id");

    if(null != id){

        final Locker locker = relation.get(id);   //此处的效率?

        if(locker == null){

            Locker lock = new Locker(id, false);

            synchronized(lock){
try{
relation.put(id, lock);
System.out.println(id + "开始等待,relation.size() = " + relation.size());
lock.wait(5000l); //设置超时时间
HttpClientUtil.httpGetRequest("http://localhost:8080/Test/BusiServlet?id=" + 2);
System.out.println(id + "同步处理完成,relation.size() = " + relation.size());
}catch(InterruptedException e){
e.printStackTrace();
}
} try{
response.serHeader("content-type", "text/html;charset=utf-8");
if(relation.containsKey(id)){
response.getOutputStream().write(("失败...." + id).getBytes("utf-8"));
} else {
response.getOutputStream().write(("成功...." + id).getBytes("utf-8"));
}
}catch(IOException e){
e.printStackTrace();
} } else {
//此处需要加锁?
synchronized(locker){
try{
locker.notify();
}catch(Exception e){
e.printStackTrace();
}
relation.remove(id);
} } } } class Locker{ String id;
boolean dir; //Getter and Setter }

最新文章

  1. Python中的多进程与多线程(一)
  2. js模块定义——支持CMD&amp;AMD&amp;直接加载
  3. 认识DOM和一些方法
  4. 刚看到的感觉会用的到 收藏一下 常用的iOS第三方资源 (转)
  5. 小程序基础09:视图层之WXML
  6. sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法
  7. tmux使用
  8. MVC5入门学习系列④
  9. electron 学习笔记
  10. 假设检验(Hypothesis Testing)
  11. CentOS7下安装GitLab
  12. bugku web 头等舱
  13. Django + Uwsgi + Nginx 实现生产环境部署
  14. 解决pycharm启动慢
  15. 使用WebSocket帮助应用程序群集节点间通信
  16. GreenDao-自定义SQL查询-拼接多个查询条件-AndroidStudio
  17. Android 混淆打包
  18. Python类,特殊方法, __getitem__,__len__, __delitem__
  19. js改变下拉框内容
  20. 拿与不拿的dfs

热门文章

  1. 第三家面试过程,及导出elcel的进一步小结。(8月11号 周五)
  2. 上位机开发之三菱Q系列PLC通信实践
  3. 1、Fiddler基础
  4. myeclipse 2017 CI 破解
  5. 什么是 Nginx?
  6. Centos 7 下自启动服务配置
  7. django之CORS跨域请求
  8. 8.4 Go select
  9. kube-controller-manager反复重启解决
  10. 王玉兰201771010128《面向对象程序设计(java)》第一周学习总结