Multithreading 在AbstractJavaSamplerClient自定义代码中使用socket.io-java-client库时,Thread.Sleep会导致JMeter中出现异常

Multithreading 在AbstractJavaSamplerClient自定义代码中使用socket.io-java-client库时,Thread.Sleep会导致JMeter中出现异常,multithreading,concurrency,jmeter,Multithreading,Concurrency,Jmeter,我为JMeter实现了一个定制的AbstractJavaSampler客户端,核心运行测试如下: SampleResult results = new SampleResult(); results.sampleStart(); client.request("connector.ninjaHandler.savemove", opMsg, this); while(optcode == null){ try { Thread.sleep(10); } catc

我为JMeter实现了一个定制的AbstractJavaSampler客户端,核心运行测试如下:

SampleResult results = new SampleResult();
results.sampleStart();
client.request("connector.ninjaHandler.savemove", opMsg, this);

while(optcode == null){
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

results.sampleEnd();
results.setSuccessful(optcode);
但是,我发现
Thread.sleep()
会导致这样的异常:

未捕获异常java.lang.IllegalStateException:计时器已取消。。有关详细信息,请参阅日志文件

我在谷歌上搜索,人们说thread.sleep会导致计时器失灵。但是,我无法避免它,因为我正在测试一个web套接字服务器,这意味着我需要等待服务器响应返回…(如果我删除thread.sleep-between-sample start/end,它运行正常)

但是,示例test
org.apache.jmeter.protocol.java.test.SleepTest
运行良好,它使用了thread.sleep


有什么建议吗?

这很可笑,因为我发现问题来自我使用的库…

从中修复修补程序后,它就可以工作了

强制性链接:你应该接受你自己的答案,这样有助于others@PMDUBIK-谢谢你的提醒~