我有一个线程,它在循环A
内执行周期性动作。while(running)
然后我有另一个线程,B
,它侦听用户输入。当用户按下按钮时,线程B
会生成一个新线程来执行任务(我们称其为 Thread 的实例C
)。此任务涉及通过 Internet 发送信息,最多可能需要 20 秒。一次可以有多个C
active 实例。
我遇到的问题是这个。A
如果当前没有“C”类型的线程处于活动状态,我希望线程只运行它的代码。更清楚地说,线程 A 看起来像这样:
class ThreadA extends Thread{
public void run(){
while(running){
performAction();
Thread.sleep(1000);
}
}
}
如果检测到一个实例C
,那么显然我不想performAction()
被调用。如果线程当前正在执行performAction()
,那么我想在当前进度处停止它的执行。
我不确定如何继续,因为我不确定如何从线程 A 中获取生成线程的引用。