如何实现线程的顺序执行,如何让多线程按顺序执行

  如何实现线程的顺序执行,如何让多线程按顺序执行

  下面java入门程序专栏介绍如何在java中让线程顺序执行,希望对你有帮助!

  我们需要完成这样一个应用场景:

  1.早上;2.测试人员、产品经理、开发人员陆续来公司上班;3.产品经理计划新的需求;4.开发者开发新的需求函数;5.测试人员测试新功能。

  规划需求、开发新功能的需求和测试新功能是有序的。我们把thread1当做产品经理,thread2当做开发人员,thread3当做测试人员。

  使用线程的 join 方法

  Join():是Theard的方法,作用是调用线程需要等待join()线程的执行,才能继续运行。

  应用场景:当一个线程必须等待另一个线程完成执行时,可以使用join方法。

  例子如下:

  包com . zhangsf . Java base . thread . order;

  /**

  * @作者zhangsf

  *线程通过子程序join按顺序执行。

  */

  公共类ThreadJoinDemo {

  公共静态void main(String[] args) {

  最终线程thread1=新线程(new Runnable() {

  @覆盖

  公共无效运行(){

  System.out.println(产品经理规划新需求);

  }

  });

  最终线程thread2=新线程(new Runnable() {

  @覆盖

  公共无效运行(){

  尝试{

  thread 1 . join();

  System.out.println(开发者开发新需求);

  } catch (InterruptedException e) {

  e . printstacktrace();

  }

  }

  });

  Thread thread3=新线程(new Runnable() {

  @覆盖

  公共无效运行(){

  尝试{

  thread 2 . join();

  System.out.println(测试人员测试新特性);

  } catch (InterruptedException e) {

  e . printstacktrace();

  }

  }

  });

  system . out . println( morning:);

  System.out.println(测试人员来工作了.);

  thread 3 . start();

  System.out.println(产品经理来上班了.);

  thread 1 . start();

  System.out.println(开发人员来工作了.);

  thread 2 . start();

  }

  }运行结果:

  如何解决写爬虫IP受阻的问题?立即使用。

  使用主线程的 join 方法

  这里,join()在主线程中用于阻塞线程。

  包com . zhangsf . Java base . thread . order;

  /**

  * @作者zhangsf

  *线程通过主程序join按顺序执行。

  */

  公共类ThreadMainJoinDemo {

  公共静态void main(String[] args)引发异常{

  最终线程thread1=新线程(new Runnable() {

  @覆盖

  公共无效运行(){

  System.out.println(产品经理正在计划新的需求.);

  }

  });

  最终线程thread2=新线程(new Runnable() {

  @覆盖

  公共无效运行(){

  System.out.println(开发者开发新需求);

  }

  });

  最终线程thread3=新线程(new Runnable() {zzzz

  @覆盖

  公共无效运行(){

  System.out.println(测试人员测试新特性);

  }

  });

  system . out . println( morning:);

  System.out.println(产品经理来上班);

  System.out.println(测试人员来上班);

  System.out.println(开发人员来上班);

  thread 1 . start();

  //父进程调用子进程的join()方法后,父进程需要等待子进程运行完毕后再继续。

  System.out.println(开发人员和测试人员休息一下.);

  thread 1 . join();

  System.out.println(产品经理的新需求规划完成!);

  thread 2 . start();

  System.out.println(测试人员将休息.);

  thread 2 . join();

  thread 3 . start();

  }

  }运行结果:

  让线程顺序执行的方法有很多,以后会一一介绍。这就是在java中如何让线程顺序执行的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: