`
baobeituping
  • 浏览: 1068875 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

线程的JOIN方法

阅读更多
Thread 提供了让一个线程等待另一个线程完成的方法,JOIN方法。当某个程序执行流中调用其他线程的JOIN方法,调用线程将被阻塞,直到被JOIN方法加入的线程执行完毕。


程序实例:

package com.test;

public class JoinThread extends Thread {

public JoinThread(String name)
{
  super(name);
}
public void run()
{
for(int i=0;i


   System.out.println(Thread.currentThread().getName()+" "+i);
  }
}

public static void main(String[] args)
{
  new JoinThread("新线程").start();
 
  for(int i=0;iif(i==2)
   {
    try {
     JoinThread jt = new JoinThread("被Join的线程");
     jt.start();
     jt.join();
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
   System.out.println(Thread.currentThread().getName()+" "+i);
  
  }
}




}

结果:

main 0
新线程 0
main 1
新线程 1
新线程 2
新线程 3
新线程 4
新线程 5
新线程 6
新线程 7
新线程 8
新线程 9
被Join的线程 0
被Join的线程 1
被Join的线程 2
被Join的线程 3
被Join的线程 4
被Join的线程 5
被Join的线程 6
被Join的线程 7
被Join的线程 8
被Join的线程 9
main 2
main 3
main 4
main 5
main 6
main 7
main 8
main 9

当前程序中运行了三个线程,第一个是新线程,一个是主线程,一个是被JOIN的线程。
新线程首先被调用,但不一定马上启动,主线程开始运行,当主线程运行到2的时候,开始加入被JOIN的线程。但这时候被JOIN的线程不一定马上会启动,主线程停止,但新线程仍然在运行,当被JOIN的线程获得CPU的时候开始执行,知道他的方法执行完毕,主线程才开始运行。
分享到:
评论

相关推荐

    浅谈java线程join方法使用方法

    浅谈Java线程join方法使用方法 Java中的线程join方法是一种实现线程同步的方式,可以将原本并行执行的多线程方法变成串行执行的。在Java中,线程join方法的作用是使当前线程等待另一个线程的结束,然后再继续执行...

    Java多线程join方法实例代码

    Java多线程join方法实例代码 Java多线程join方法是一种非常重要的技术,在Java并发编程中,线程的join方法可以使得一个线程等待另一个线程的执行完毕,然后继续执行。这种机制可以确保线程的正确执行顺序,避免了...

    浅谈java多线程 join方法以及优先级方法

    `join()`方法用于线程同步,当一个线程(例如线程A)调用另一个线程(例如线程B)的`join()`方法时,线程A会暂停执行,直到线程B完成其所有工作。这样可以确保线程A在继续执行之前等待线程B的完成,避免数据不一致或...

    python线程join方法原理解析

    本文将深入解析`join()`方法,它是控制线程执行顺序和同步的重要手段。 1. **默认线程行为** Python默认情况下,创建的线程会与主线程同步执行。这意味着,无论主线程是否执行完毕,它都会等待所有子线程执行完毕...

    一个线程join另一个线程,(包括和interrupt互动的用法)1---马克-to-win java视频

    一个线程join另一个线程,(包括和interrupt互动的用法)1---马克-to-win java视频

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法、yield()方法、join方法、interrupt()方法

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法(休眠)、yield()方法(礼让)、join方法(合并)、interrupt()方法(中断),线程的生命周期 线程 与 进程 的关系:**有一个进程中至少包含一个线程 **...

    Java线程之join_动力节点Java学院整理

    Java线程中的`join()`方法是一个非常重要的同步工具,它允许一个线程(通常为主线程)等待另一个线程(子线程)执行完成后再继续执行。`join()`方法定义在`java.lang.Thread`类中,它使得多线程间的协作更加有序。 ...

    Java线程中yield与join方法的区别Java开发J

    在Java多线程编程中,理解并正确使用`yield`和`join`方法是至关重要的。这两个方法都属于线程控制策略的一部分,但它们的作用和使用场景有所不同。 首先,我们来详细探讨`Thread.yield()`方法。这个方法的目的是让...

    NET多线程同步方法详解

    最后,Thread.Join方法是另一种简单的同步手段,它使得一个线程等待另一个线程完成后再继续执行。这在需要按特定顺序执行线程或者依赖其他线程的结果时非常有用。 综上所述,.NET框架提供了丰富的多线程同步机制,...

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    本文将总结五个关键的线程控制方法:wait()、await()、sleep()、yield()和join()。这些方法各自有独特的用途和不同的工作机制。 一、wait()、notify()、notifyAll()用法 wait()、notify()和notifyAll()是Object类...

    一个线程join另一个线程,(包括和interrupt互动的用法)3---马克-to-win java视频

    一个线程join另一个线程,(包括和interrupt互动的用法)3---马克-to-win java视频

    一个线程join另一个线程,(包括和interrupt互动的用法)2---马克-to-win java视频

    一个线程join另一个线程,(包括和interrupt互动的用法)2---马克-to-win java视频

    JAVA多线程操作方法实用大全

    `join()`方法用于等待指定线程结束。调用`join()`的线程会挂起,直到被`join()`的线程执行完毕。例如: ```java Thread thread = new Thread(new Runnable() { @Override public void run() { // 执行代码 } })...

    java 线程方法join简单用法实例总结

    主要介绍了java 线程方法join简单用法,结合实例形式总结分析了Java线程join方法的功能、原理及使用技巧,需要的朋友可以参考下

    Python threading 3 join功能 (多线程 教学教程tutorial)

    Python_threading_3_join功能_(多线程_教学教程tutorial)

    Linux下的多线程编程方法研究.pdf

    【Linux下的多线程编程方法】 在Linux操作系统中,多线程编程是实现高效并发执行的关键技术。自20世纪80年代中期以来,由于其节省资源和便捷的通信机制,多线程已被广泛应用于操作系统中。相较于进程,线程的创建和...

    python 多线程中join()的作用

    一 前言 温习python 多进程语法的时候,对 join的理解不是很透彻,本文通过代码实践来加深对 join()的认识。...join()方法可以在当前位置阻塞主进程,带执行join()的进程结束后再继续执行主进程的代码逻辑。 #

    多线程控制方法

    本文将深入探讨四个重要的线程控制方法:`start()`、`sleep()`、`join()` 和 `yield()`,以及它们在实际应用中的作用。 首先,`start()` 方法是启动线程的核心方法。当创建一个 `Thread` 类的实例或其子类时,线程...

    Python线程中对join方法的运用的教程

    当在一个线程上调用另一个线程的`join()`方法时,调用线程会被阻塞,直到被调用的线程结束。这意味着,主线程会暂停其执行流程,直到指定的线程执行完毕,然后才会继续执行`join()`之后的代码。 在提供的代码示例中...

Global site tag (gtag.js) - Google Analytics