我们有一个处理数百万条记录的Java多线程环境。在生产中,一些线程被观察到挂起,等待同步方法。通过消除对同步方法的依赖来提供解决方法。
但是,仍然无法在Dev环境中复制问题,多个线程挂起在同步方法上。在Dev中,所有线程都在每次尝试中完成。有任何建议如何在Dev中复制问题以进行单元测试补丁?
经过更多的分析,似乎是饥饿的情况。关于如何在执行者框架中模拟饥饿的任何指示?
答案 0 :(得分:1)
在DEV环境中,由于无法创建类似生产环境来重新创建错误,因此需要在同步块中引入长睡眠语句,以便其他线程必须等待线程完成同步块。所以只需在同步块中添加一个长睡眠语句并尝试。