Skip to content

状态检测接口出现偶发的线程阻塞问题 #5450

@cyl520134

Description

@cyl520134

你的特性请求和某个问题有关吗?请描述

容器化部署,部署了36pod,每个pod的tomcat的线程数最大是80,生产上偶发线程阻塞突升,从异常日志堆栈中看

Image

异常主要发生在代码:

Image

清晰简洁地描述一下你希望的解决方案

由于使用的是Multimaps.synchronizedSetMultimap定义的deferredResults,其内部的put和remove方法都使用了synchronized锁,所以每次for循环均会有加解锁的操作,底层代码如下:
Image

清晰简洁地描述一下这个特性的备选方案

Multimaps.synchronizedSetMultimap同步锁粒度是否可以更小,比如使用重构在for循环外部加synchronized同步块,或者使用ConcurrentHashMap使锁粒度更小,会不会产生新的问题

其它背景

在这里添加和这个特性请求有关的背景说明、截图

清晰简洁地描述一下你希望的解决方案

清晰简洁地描述一下这个特性的备选方案

其它背景

在这里添加和这个特性请求有关的背景说明、截图

Metadata

Metadata

Assignees

Labels

discussionCategorizes issue as related to discussion

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions