所以我有我的 MainThread 类负责所有其他线程。(创建、停止、监视)
public class MainThread implements Runnable {
public static volatile boolean keepRunning = true;
public void run(){
//some code..
while(keepRunning){
//here i am creating threads for my Wired class (explaining below)
//that are stored in a hashmap
Wired wiredInterface = new Wired(s,defaultSleepTime,c,max,percent);
Thread t1 = new Thread(wiredInterface);
t1.start();
}
在我的代码中,有一种情况我需要停止线程 t1。
我的有线课堂:
public class Wired implements Runnable {
private static volatile boolean keepRunning = true;
public void run(){
while(keepRunning){
//code
try{
Thread.sleep(((k - i + 1)*defaultTime) - DT); //just to show that this thread sleeps periodically. doesnt affect the question
}catch(InterruptedException e){e.printStackTrace();}
}
}
在我的有线课程中,我有这种方法来更改 volatile 标志。
public static void stopRunning(){
keepRunning = false;
}
我的问题是..如何从我的 MainThread 访问方法 stopRunning 以获得我想要停止的特定线程?Thread.interrupt() 作为解决方案对我不起作用。
我看过很多关于这个主题的类似问题,但我还没有找到适合我的情况的东西。抱歉,如果我遗漏了什么此代码是对我的实际代码的过度简化