Java中线程之间的通信是如何实现的-创新互联

这篇文章将为大家详细讲解有关Java中线程之间的通信是如何实现的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联是一家专业提供长宁企业网站建设,专注与成都网站制作、网站建设、外贸网站建设H5场景定制、小程序制作等业务。10年已为长宁众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。

本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。

下面我从几个例子作为切入点来讲解下 Java 里有哪些方法来实现线程间通信。

  1. 如何让两个线程依次执行?
  2. 那如何让两个线程按照指定方式有序交叉运行呢?
  3. 四个线程 A B C D,其中 D 要等到 A B C 全执行完毕后才执行,而且 A B C 是同步运行的
  4. 三个运动员各自准备,等到三个人都准备好后,再一起跑
  5. 子线程完成某件任务后,把得到的结果回传给主线程

如何让两个线程依次执行?

假设有两个线程,一个是线程 A,另一个是线程 B,两个线程分别依次打印 1-3 三个数字即可。我们来看下代码:

private static void demo1() {
 Thread A = new Thread(new Runnable() {
  @Override
  public void run() {
   printNumber("A");
  }
 });

 Thread B = new Thread(new Runnable() {
  @Override
  public void run() {
   printNumber("B");
  }
 });

 A.start();
 B.start();
}

当前名称:Java中线程之间的通信是如何实现的-创新互联
网页链接:http://azwzsj.com/article/ccjdhj.html