`
bjnick
  • 浏览: 17080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

线程的join()理解

    博客分类:
  • java
阅读更多

      查看了网上的资料,简单来说,join()的理解就是类似方法调用,在正在运行的线程中调用某其他线程,待其完成后继续先前的线程。

      code如下:

package com.test.thread;


public class MyjoinTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Thread t=new Thread(new R());
		t.start();
		System.out.println("start...");
		try {
			t.join();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("finished...");
		
	}
	
	

}

class R implements Runnable{

	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i=0;i<5;i++){
			System.out.println(i);
		}
			
	}
	
}

 

输出如下:

start...
0
1
2
3
4
finished...

 

如果不join的话,则是:

start...
finished...
0
1
2
3
4

 

即main线程调用t线程。

over

分享到:
评论

相关推荐

    C#语言多线程初步理解

    此外,`Thread.Join`方法用于等待特定线程完成,而`Thread.Abort`可以强制终止线程,但这通常是不推荐的,因为它可能导致未捕获的异常和资源泄漏。更安全的方法是设置一个取消标志,让线程在检查到这个标志后自行...

    线程属性理解源码——属性、释放线程

    3. **Join操作**:主程序可以调用`pthread_join()`等待特定线程结束,这可以确保线程的所有资源在主线程继续执行前被正确清理。 4. **守护线程**:守护线程(Daemon Thread)是一种特殊的线程,它们在所有非守护...

    线程理解,线程 c++

    本文将深入探讨线程的理解,并以C++为例,阐述其在实际编程中的应用。 线程可以被视为程序的执行流,每个线程都有自己的程序计数器、栈和局部变量,但共享同一块内存空间,包括全局变量和静态变量。这意味着不同...

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

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

    python 多线程中join()的作用

    温习python 多进程语法的时候,对 join的理解不是很透彻,本文通过代码实践来加深对 join()的认识。 multiprocessing 是python提供的跨平台版本的多进程模块。multiprocessing可以充分利用多核,提升程序运行效率。...

    理解多线程,写一个多线程应用程序,要求能在用户级实现线程的调度,如启动、挂起、恢复、停止,的C thread、java thread实现。

    总结起来,无论是C语言还是Java,实现多线程都需要理解线程的创建、调度、同步和通信。通过合理利用线程,开发者可以编写出更高效、响应更快的应用程序,充分利用现代计算机的多核优势。在实际开发中,应根据需求...

    【IT十八掌徐培成】Java基础第08天-02.多线程-join-daemon-同步.zip

    在Java中,`join()`、`daemon`线程以及同步机制是多线程编程中的重要概念,对于理解和编写高效的并发代码至关重要。 首先,我们来讨论`join()`方法。在多线程环境中,有时候我们需要确保一个线程在执行完它的任务后...

    java 多线程的理解及其代码

    通过深入理解和熟练运用这些知识点,开发者能够更好地在Java程序中利用多线程,提高程序的并发性和效率,同时也需要注意避免多线程带来的问题,如线程安全、资源竞争等。在实际开发中,结合具体场景选择合适的多线程...

    C++ 如何正确的使用线程 释放线程资源

    理解joinable状态和detached状态线程的使用场景和处理方式,将有助于我们更好地利用多线程技术进行程序设计。在多线程编程中,合理地分配和释放资源,可以避免诸如内存泄漏等问题,确保程序的健壮性。

    对python 多线程中的守护线程与join的用法详解

    Python的多线程是并发执行任务的重要工具,它允许程序在同一时间处理多个任务,从而提高效率。在Python中,多线程的实现主要依赖于`...正确理解和使用这些特性,能够帮助开发者编写出更加高效、可控的多线程程序。

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

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

    线程中创建子线程

    在计算机编程中,多线程是一种并发执行任务的机制,它可以极大地提高程序的执行效率,尤其是在处理大量数据或需要同时进行多个...在实际编程中,理解并掌握这些概念和技术,对于编写高效、可靠的多线程程序至关重要。

    c++多线程编程的十个例子

    以下是对“C++多线程编程的十个例子”的详细讲解,这些例子将帮助你在Windows环境下深入理解和应用多线程。 1. **创建线程** C++11引入了`std::thread`库来创建和管理线程。例如,你可以通过传递函数或成员函数...

    linux线程的基本概念

    【Linux线程的基本概念】 ...通过理解和应用上述Linux线程的基本概念和关键函数,开发者可以构建高效的多线程程序,充分利用多核系统的计算能力,同时需要注意避免潜在的并发问题,确保程序的稳定性和性能。

    多线程测试(是多线程的测试,对学习多线程的朋友有用)

    在编程领域,多线程是一种常见的技术,它允许程序同时执行多个任务,从而提高系统效率和响应速度。...通过深入理解C#的多线程机制,并利用各种测试工具和方法,开发者可以构建出强大且可靠的多线程应用程序。

    关于C#中Thread.Join()的一点理解

    是第一次在C#中接触Thread,自己研究了一下其中Thread.Join()这个方法,下面谈谈自己的理解。  Thread.Join()在MSDN中的解释很模糊:Blocks the calling thread until a thread terminates  有两个主要问题: ...

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有...同时,理解并熟练掌握多线程编程能帮助开发者解决复杂的问题,提高软件的质量和用户体验。

    C++ 等待线程结束

    在C++编程中,线程同步是一个至关重要的概念,...理解这些工具的工作原理和正确使用它们,对于编写健壮的多线程程序至关重要。在实际开发中,应根据具体需求选择合适的方法来等待线程结束,以保证程序的正确性和效率。

    CC++多线程编程练习题大全

    8. **线程 join 和 detach**:`join`方法使得主线程等待子线程完成,`detach`则将线程分离,不再与主线程关联,线程结束时资源会自动回收。 9. **死锁**:当两个或更多线程相互等待对方释放资源而陷入僵局时,发生...

    线程及线程应用总结

    线程在IT行业中是多任务并行处理的关键概念,它使得程序可以在同一时间执行多个不同的任务,极大地提高了程序的效率和响应性。本篇将基于提供的文件名...深入理解并实践这些知识点,有助于提升对Java多线程编程的掌握。

Global site tag (gtag.js) - Google Analytics