爸爸和儿子的故事带你理解java线程

x33g5p2x  于2021-03-13 发布在 其他  
字(1.4k)|赞(0)|评价(0)|浏览(305)

今天回顾线程方面的知识,发现一个很有意思的小程序,是用来说明多线程的下面贴出来分享下,对初学者理解线程有很大的帮助

爸爸和儿子的故事

  1. public class FatherThread extends Thread{
  2. @Override
  3. public void run() {
  4. System.out.println("爸爸想抽烟,发现烟抽完了");
  5. System.out.println("爸爸让儿子去买包红塔山");
  6. Thread son = new SonThread();
  7. son.start();
  8. System.out.println("爸爸等儿子买烟回来");
  9. try {
  10. //join含义:等待son线程执行完毕,father线程才继续执行
  11. son.join();
  12. }
  13. catch (InterruptedException e) {
  14. System.out.println("爸爸出门去找儿子跑哪去了");
  15. System.exit(1);
  16. }
  17. System.out.println("爸爸高兴的接过烟开始抽,并把零钱给了儿子");
  18. }
  19. }
  1. public class SonThread extends Thread{
  2. @Override
  3. public void run() {
  4. String tags ="\t\t\t\t\t";
  5. System.out.println(tags+"儿子去买烟了");
  6. System.out.println(tags+"儿子去买烟要10分钟");
  7. try {
  8. for(int i =0; i<10;){
  9. Thread.sleep(1000);
  10. System.out.println(tags+"儿子出去第"+ ++i +"分钟");
  11. }
  12. } catch (InterruptedException e) {
  13. e.printStackTrace();
  14. }
  15. System.out.println(tags+"儿子去买烟回来了");
  16. }
  17. }
  1. public class Main {
  2. public static void main(String[] args){
  3. System.out.println("爸爸和儿子的故事");
  4. Thread faThread =new FatherThread();
  5. faThread.start();
  6. try {
  7. Thread.sleep(5000);
  8. } catch (InterruptedException e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }
  12. }
  13. }

运行结果

爸爸和儿子的故事

爸爸想抽烟,发现烟抽完了

爸爸让儿子去买包红塔山

爸爸等儿子买烟回来

儿子去买烟了

儿子去买烟要10分钟

儿子出去第1分钟

儿子出去第2分钟

儿子出去第3分钟

儿子出去第4分钟

儿子出去第5分钟

儿子出去第6分钟

儿子出去第7分钟

儿子出去第8分钟

儿子出去第9分钟

儿子出去第10分钟

儿子去买烟回来了

爸爸高兴的接过烟开始抽,并把零钱给了儿子

程序进入主函数,首先father线程开始执行。爸爸让儿子去买烟,然后等待儿子买烟回来,这时son线程启动10分钟后儿子回来fathrer线程继续执行。

相关文章