我们有一个处理数百万条记录的 Java 多线程环境。在生产中,观察到一些线程挂起,等待同步方法。通过消除对同步方法的依赖性提供了解决方法。
但是,仍然无法在 Dev 环境中复制问题,即多个线程卡在同步方法上。在 Dev 中,所有线程都在每次尝试中完成。关于如何在 Dev 中复制问题以对补丁进行单元测试有什么建议吗?
经过更多分析,似乎是饥饿的情况。关于如何在执行程序框架中模拟饥饿的任何指示?
最佳答案
在您的 DEV 环境中,由于您无法创建类似生产的环境来重新创建您需要在同步块(synchronized block)中引入长 sleep 语句的错误,因此其他线程必须等待线程完成该同步块(synchronized block)。所以只需在同步块(synchronized block)中添加一个长 sleep 语句并尝试。
关于java - 如何在多线程环境中模拟挂起的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801632/