多线程 一个线程控制另一个线程
要求:
(1)在main方法中启动两个线程
(2)第1个线程循环随机打印100以内的整数
(3)直到第2个线程从健盘读取了“Q”命令。
/*
(1)在main方法中启动两个线程
(2)第1个线程循环随机打印100以内的整数
(3)直到第2个线程从健盘读取了“Q”命令。
*/
public class Homework01{
public static void main(String[] args){
A a = new A();
B b = new B(a);//注意,把a放进去
a.start();
b.start();
}
}
//创建A线程类
class A extends Thread{
private boolean loop = true;
@Override
public void run(){
//输出1-100数字
while(loop){
System.out.println((int)(Math.random() * 100 + 1));
//休眠
try{
Thread.sleep(1000);
} catch(InterruptedException e){
e.printStackTrace();
}
}
System.out.println("a线程退出..");
}
}
//创建B线程类,直到第2个线程从健盘读取了“Q”命令
class B extends Thread(){
private A a;
public B(A a){ //构造器中,直接传入A类对象
this.a = a;
}
@Override
public void run(){
while(true){
//接收到用户的输入
System.out.println("请出入指令(Q)表示退出");
char key = scanner.next().toUpperCase().charAt(0);
if(key == 'Q'){
//以通知的方式结束A线程
a.setLoop(flase);
System.out.println("b线程退出");
break;
}
}
}
}
本文是学习B站韩顺平老师 多线程 视频的做题笔记,可以参考老师讲解视频:java 多线程 韩顺平练习题1