如何暂停线程?

时间:2014-07-22 14:58:38

标签: java multithreading

我在应用程序的不同部分有很多线程(SwingWorker,Timer,Thread ..)。 我需要调用一个暂停所有这些线程的方法。 这样做的最佳方法是什么?

由于

其他信息

我在应用程序中有一个记事本,它可以粘贴图像,绘制箭头,线条,键入文本,你可以用手写笔等编写。同时在后台这个应用程序做不同的事情:检查登录时间,检查消息,更新内容,与数据库一起使用。

因此,当您尝试使用手写笔和应用程序在后台执行所有这些操作时,使用手写笔写入会变得有点慢。所以我决定在后台暂停所有这些线程。 我认为这应该有所帮助,我想知道暂停这些线程的最佳方法是什么。在我用手写笔写完后,他们应该继续工作。

2 个答案:

答案 0 :(得分:0)

如果你想立即阻止它们(它们可能是阻塞或类似的东西),我所知道的唯一方法就是引用它们并在它们上面调用interrupt。如果你知道它们没有被阻止,那么你可以在它们中设置一些布尔标志,例如enabled。然后让他们通过将此标志的新值视为false来阻止自己,并在这种情况下立即退出。

答案 1 :(得分:0)

尝试在应用程序中只有一个类具有"生成线程"并将他们与"工人" (实现相同接口并具有不同功能的其他类)。它可以将所有引用包含在某个变量和调用函数中以阻止它们(stop()或interrupt())。