您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

windows线程运行一段时间一直停在sleep被阻塞, 谢谢各位大佬

2022/1/2 13:00:21 架构 字数 2926 阅读 621 来源 https://www.iteye.com/blogs/category/architecture

windows线程运行一段时间一直停在sleep被阻塞, 谢谢各位大佬 1. 在windows部署个项目, 线程每隔一段时间同步一次数据, 但是运行一段时间就一直停在sleep, 查看状态被阻塞 , 其他的线程也被BLOCKED ? ? ? while (true) { try { //全量同步: 取完queue配置, 同步结束 //增量同步: 循环配置里的内容 ... JVM线程 keml

1. 在windows部署个项目, 线程每隔一段时间同步一次数据, 但是运行一段时间就一直停在sleep, 查看状态被阻塞 , 其他的线程也被BLOCKED

   

 

while (true) {
            try {
                //全量同步: 取完queue配置, 同步结束
                //增量同步: 循环配置里的内容
                conf = busiBlockingQueue.poll(5000L, TimeUnit.MILLISECONDS);
                //log.info("conf = {},busiBlockingQueue.size = {}", (conf == null ? "null" : conf.getBusiType()), busiBlockingQueue.size());
                if (conf == null && transType == TransConstants.TransType.FULL) {
                    break;
                }

                //同步数据并处理数据
                try {
                    //是否成功获得同步标识
                    BusiTransVo busiTransVo = buildTransVo(transType, conf, sessionInfo);
                    //BusinessInfo businessInfo = sessionInfo.getBusinessInfo();
                    //log.info("[{}]SYNCING[{}][{}]: busiTypeName={}, busiType={}, transTimestamp = '{}',transOffsetId = {},conf.szie = {}", Thread.currentThread().getName(),transType, businessInfo.getBusinessId(), conf.getBusiTypeName(), conf.getBusiType(), busiTransVo.getTransTimestamp(), busiTransVo.getTransOffsetId(), busiBlockingQueue.size());
                    transDataService.dataHandle(transType, conf, busiTransVo, sessionInfo);
                } catch (Exception e) {
                    log.error(e.getMessage(), e);
                }

                //如果是增量同步会轮询同步配置里的内容
                if (transType == TransConstants.TransType.INCR) {
                    busiBlockingQueue.put(conf);
                    Thread.sleep(ConvertUtil.convertObjectToLong(conf.getBusiTransFrequency(),2000L));
                }

            } catch (Exception e) {
                log.error(conf == null ? "Conf is null" : conf.toString());
                log.error(e.getMessage(), e);
            }
        }

 

线程被阻塞, 也未发现死锁 

 

 

 

 


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶