多线程 一个线程控制另一个线程
多线程 一个线程控制另一个线程
要求: (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站韩顺平老师 多线程 视频的做题笔记,可以参考老师讲解视频: