Eclipse暂停特定线程,同时允许其他线程运行

时间:2013-07-02 19:07:25

标签: java eclipse multithreading debugging

调试器是否有办法暂停特定线程,同时让其他线程运行?我想验证一些我正常工作的锁,我不知道如何诱导某些条件。请注意,所有线程都运行相同的代码,因此对代码的任何更改都会影响所有线程,因为我只想停止一个线程。

4 个答案:

答案 0 :(得分:1)

您可能希望查看像MultithreadedTC这样的测试框架 - 它允许您以编程方式控制测试期间不同线程的流量,以便在测试期间引发竞争条件和超时。

答案 1 :(得分:0)

如果您的代码中有一个方便的点来为该单个线程设置断点,则可以在其属性中更改该断点的Suspend Policy,以仅停止当前线程而不是整个VM。

答案 2 :(得分:0)

您可以添加一个方法来在线程中进行休眠。然后,您可以使用junit或简单的POJO调用该方法。

答案 3 :(得分:0)

我能够通过将以下代码放在线程代码中来解决我自己的问题 -

if(Thread.currentThread.getName()="thread1"){
    Thread.currentThread.sleep(5000);
}

这样只有线程1才会睡觉。它工作得很好,我看到我的锁工作,但这不是一个我觉得很好的解决方案。也许有人可以做些更好的事情?