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