我们有一个处理数百万条记录的Java多线程环境。在生产环境中,观察到一些线程被挂起,等待同步方法。通过删除对synchronized方法的依赖提供了解决方法。
但是,仍然无法在开发环境中复制该问题,即多个线程在同步方法上挂起。在Dev中,所有线程在每次尝试中都会完成。有什么建议如何在Dev中复制这个问题来对补丁进行单元测试吗?
经过更多的分析,似乎starvation.Any指针的情况下如何在执行器框架中模拟饥饿?
发布于 2018-04-13 00:38:18
在您的DEV环境中,由于您无法创建类似于生产的环境来重新创建bug,因此您需要在synchronize块中引入一个长的睡眠语句,以便其他线程必须等待线程完成该synchronize块。因此,只需在synchronize块中添加一个长睡眠语句并尝试。
https://stackoverflow.com/questions/49801632
复制相似问题