博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉点击跳转到网站
问题:
启动一个线程t ,要求在main线程中去停止线程t
实现代码如下,具体注释已经在代码中给出哈
public class ThreadExit {
public static void main(String[] args) {
T t = new T();
t.start();
//如果希望main主线程,去控制t线程的终止,必须修改loop
//让t 退出run方法 从而终止t线程 ->通知方式
//让主线程休眠10秒,再通知t1线程退出
System.out.println("main线程休眠10s...");
try {
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
t.setLoop(false);
}
}
class T extends Thread {
private int count = 0;
//设置一个控制变量
private boolean loop = true;
@Override
public void run() {
while (loop) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("T 运行中" + (++count));
}
}
public void setLoop(boolean loop) {
this.loop = loop;
}
}
运行结果: