我有一个仆人线程,只要我的主线程告诉它执行任务,我就想执行该任务。
这是我的仆人线程中的 run 方法:
public void run() {
while (true) {
System.out.println("Servant woke up.");
for (int i = 0; i < globalVariable; i++) {
System.out.println("Servant is working very hard.");
}
try {
System.out.println("Servant went to sleep.");
//I want servant to sleep until master wakes it up so I picked a big number
Thread.sleep(999999999);
} catch (InterruptedException e) {
System.out.println("Servant had a hard time falling asleep");
}
}
}
所以当我的主线程执行此操作时:
globalVariable = 10;
servant.interrupt();
我希望我的仆人说它醒了,工作了 10 倍,然后又睡着了,但现在它没有做任何事情,除了最初的“仆人醒了”之外,控制台上什么也没有打印。和“仆人去 sleep 了。”
(我对线程非常陌生,很抱歉,如果这是非常基本的)
我是一名优秀的程序员,十分优秀!