• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java中join线程操作实例分析

java 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

本文实例讲述了Java中join线程操作。分享给大家供大家参考,具体如下:

一 点睛

Tread提供了让一个线程等待另外一个线程完成的方法——join()方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完后为止。

join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有小问题都得到处理后,再调用主线程来进一步操作。

二 代码

public class JoinThread extends Thread
{
   // 提供一个有参数的构造器,用于设置该线程的名字
   public JoinThread(String name)
   {
      super(name);
   }
   // 重写run()方法,定义线程执行体
   public void run()
   {
      for (int i = 0; i < 100 ; i++ )
      {
        System.out.println(getName() + " " + i);
      }
   }
   public static void main(String[] args)throws Exception
   {
      // 启动子线程
      new JoinThread("新线程").start();
      for (int i = 0; i < 100 ; i++ )
      {
        if (i == 20)
        {
           JoinThread jt = new JoinThread("被Join的线程");
           jt.start();
  <mark style="color:transparent">来4源gaodaimacom搞#代%码*网</mark>         // main线程调用了jt线程的join()方法,main线程
           // 必须等jt执行结束才会向下执行
           jt.join();
        }
        System.out.println(Thread.currentThread().getName()
           + " " + i);
      }
   }
}

三 运行结果

main  0
main  1
main  2
main  3
main  4
main  5
main  6
新线程  0
……
新线程  11
新线程  12
新线程  13
main  7
main  8
……
main  16
main  17
新线程  14
main  18
main  19
新线程  15
新线程  16
……
新线程  31
被Join的线程  0
新线程  32
被Join的线程  1
新线程  33
被Join的线程  2
新线程  34
被Join的线程  3
新线程  35
新线程  36
新线程  37
新线程  38
新线程  39
被Join的线程  4
被Join的线程  5
……
被Join的线程  13
被Join的线程  14
新线程  40
被Join的线程  15
被Join的线程  16
被Join的线程  17
新线程  41
新线程  42
被Join的线程  18
被Join的线程  19
……
被Join的线程  38
被Join的线程  39
新线程  43
新线程  44
新线程  45
被Join的线程  40
被Join的线程  41
被Join的线程  42
被Join的线程  43
新线程  46
新线程  47
新线程  48
……
新线程  60
新线程  61
被Join的线程  44
……
被Join的线程  98
被Join的线程  99
新线程  62
新线程  63
……
新线程  98
新线程  99
main  20
main  21
main  22
main  23

四 说明

1 程序开始是mian线程和新线程并发执行。

2 当i为20时,main线程开始等待“被Join的线程”执行完成,此时“被Join的线程”和“新线程”并发执行。

3 当“被Join的线程”执行完成,main线程继续运行,此时“main”和“新线程”并发执行。

希望本文所述对大家java程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java中join线程操作实例分析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址