如何将特定线程置于睡眠状态

时间:2015-04-27 00:38:58

标签: java multithreading

我在main方法中为线程添加了名称。然后,我用Shar1er80建议更新了我的run方法,以使线程2只能入睡。

1 个答案:

答案 0 :(得分:0)

线程只能暂停。

这是一个线程不能直接暂停另一个线程... 但你可以使用并发数据结构在线程之间共享数据,例如:信号量,锁,CountDownLatches,ConcurrentHashMaps等。

如果没有看到您的确切用例,我很难为您提供具体的代码。例如,我不知道你是想恢复线程还是让它暂停一段特定的时间,当然它非常重要你的线程正在做什么(即,如果它们是循环或调用阻塞IO)。

话虽如此,我无法推荐使用线程名称的其他海报推荐之一。一旦线程启动,您不仅不能更改名称,有时完全不受您的控制。我建议因为睡眠通常是关于同步的,所以特别关注CountDownLatchSemaphores,它们的Java文档中有示例。