启动两个线程,用另一个线程以通知的终止另一个线程

编程入门 行业动态 更新时间:2024-10-25 02:19:15

启动两个<a href=https://www.elefans.com/category/jswz/34/1771240.html style=线程,用另一个线程以通知的终止另一个线程"/>

启动两个线程,用另一个线程以通知的终止另一个线程

要求:

  1. 在main方法中启动两个线程
  2. 第一个线程循环随机打印100以内的整数
  3. 直到第二个线程从键盘读取了”Q“命令

实现代码如下:

public class Homework01 {public static void main(String[] args) {THk tHk = new THk();tHk.start();Thk2 thk2 = new Thk2(tHk);thk2.start();}
}//第一个线程循环打印1——100之间的数字
class THk extends Thread {Random rm = new Random();boolean flag = true;public void setFlag(boolean flag) {this.flag = flag;}@Overridepublic void run() {while (flag) {System.out.println((int) rm.nextInt(100) + 1);
//                System.out.println((int)rm.nextInt()*100+1);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("Thk线程已经退出~");}
}//直到第二个线程从键盘读取了“Q”命令
class Thk2 extends Thread {Scanner scanner = new Scanner(System.in);private THk tHk;public Thk2(THk tHk) {this.tHk = tHk;}@Overridepublic void run() {while (true) {//接受用户的输入System.out.println("请输入你的指令(Q)表示退出:");char key = scanner.next().toUpperCase().charAt(0);if (key == 'Q') {//已通知的方式结束a线程tHk.setFlag(false);System.out.println("Thk2退出~");break;}}}
}
public class Homework11 {public static void main(String[] args) {AA aa = new AA();BB bb = new BB(aa);aa.start();bb.start();}
}class AA extends Thread {//该线程是实现不断打印100以内的整数Random rm = new Random();boolean flag = true;public void setFlag(){flag=false;}@Overridepublic void run() {while (flag) {System.out.println((int)rm.nextInt(100)+1);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("线程AA已经退出~");}
}
class BB extends Thread{//该线程是读取字符“Q”来终止线程AAScanner sc = new Scanner(System.in);private AA aa;public BB(AA aa){this.aa=aa;}@Overridepublic void run(){while(true){System.out.println("请输入字符“Q”来退出程序:");char key = sc.next().toUpperCase().charAt(0);if(key=='Q'){aa.setFlag();}System.out.println("线程BB已经退出~");}}
}

注意:在控制台输入字符的时候,需要按两次回车键,不然系统识别不到,还在一边继续等待输入,一边继续输出~ 

更多推荐

启动两个线程,用另一个线程以通知的终止另一个线程

本文发布于:2023-12-03 12:36:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1655415.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线程   两个   通知

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!