`
zhelong111
  • 浏览: 183979 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Thread.join方法阻塞当前线程

 
阅读更多
先执行m2线程,然后执行主线程和m线程
package com.laili;

/**
 * 运行机制:调用join方法的线程对象先执行完成,调用该方法时所在线程将会被阻塞,直到
 * 调用join方法的线程执行完成
 * @author zhouli
 *
 */
public class TestJoin {
	private static MyThread m;
	private static MyThread2 m2;
	public static void main(String[] args) {
		m = new MyThread();
		m2 = new MyThread2();

		m.start();
		m2.start();
		try {
			m2.join();
		} catch (InterruptedException e) { 
			e.printStackTrace();
		}
		
		System.out.println("MainThread die");
	}
	
	static class MyThread extends Thread {
		@Override
		public void run() {
			try {
				m2.join();
			} catch (InterruptedException e) { 
				e.printStackTrace();
			}
			for (int i = 0; i < 1000; i++) {
				System.out.println("kkkkkkkkkk");
			}
		}
	}
	static class MyThread2 extends Thread {
		@Override
		public void run() {
		
			for (int i = 0; i < 1000; i++) {
				System.out.println("ddddd");
			}
		}
	}
}



分享到:
评论

相关推荐

    Python多线程中阻塞(join)与锁(Lock)使用误区解析

    Thread.join() 作用为阻塞主线程,即在子线程未返回的时候,主线程等待其返回然后再继续执行. join不能与start在循环里连用 以下为错误代码,代码创建了5个线程,然后用一个循环激活线程,激活之后令其阻塞主线程. ...

    java核心知识点整理.pdf

    本地方法区(线程私有) ................................................................................................................ 23 2.2.4. 堆(Heap-线程共享)-运行时数据区 ...........................

    JAVA核心知识点整理(有效)

    2.2.3. 本地方法区(线程私有) ................................................................................................................ 23 2.2.4. 堆(Heap-线程共享)-运行时数据区 .....................

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

    thread.join():在子线程完成运行之前,该子线程的父线程(一般就是主线程)将一直存在,也就是被阻塞 实例: #!/usr/bin/python # encoding: utf-8 import threading from time import ctime,sleep def func1(): ...

    linux系统编程之线程.zip

    thread线程以不同的方法终止,通过pthread_join得到的终止状态是不同的,总结如下: 1. 如果thread线程通过return返回,retval所指向的单元里存放的是thread线程函数的返回值。 2. 如果thread线程被别的线程调用...

    python线程join方法原理解析

    这篇文章主要介绍了python线程join方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作...3 join方法的作用是阻塞,等待子线程结束,join方法有一个参数是timeout,即如果主线程等待timeout,子线程还

    Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法。分享给大家供大家参考。具体分析如下: join的作用是众所周知的,阻塞进程直到...此处join的原理就是依次检验线程池中的线程是否结束,没有结束就阻塞直到线程结束

    Java高级程序设计测试含答案.docx

    创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题 C.Thread类属于java.util程序包 D.以上说法无一正确(正确答案) Java高级程序设计测试含答案全文共40页,当前为第2页。下面哪些选项属于...

    Java高级程序设计-多线程(二).pptx

    通过sleep可以使线程进入休眠状态,通过join方法可以让线程处于等待,其他线程执行完毕后继续执行。 线程生命周期包括:新建 就绪 运行 阻塞 死亡5种状态。 Java高级程序设计-多线程(二)全文共34页,当前为第2页。 ...

    java7源码-thread:多线程相关的学习

    3.Blocked:线程阻塞等待监视器锁定的线程状态 4.Waiting:等待线程的线程状态(wait、join、park) 5.Timed Waiting:具有指定等待时间的等待线程的线程状态(sleep、wait、join、parkNanos、parkUntil) 6.Terminated...

    浅析java线程中断的办法

    中断线程相关的方法 ...如果正在运行wait(),sleep(),join()这三个方法阻塞了线程,那么将会使得线程抛出InterruptedException异常,这是一个中断阻塞的过程。如果是其它的正在运行的状态,那么将不会有任何影响,

    Python THREADING模块中的JOIN()方法深入理解

    这将阻塞正在调用的线程,直到被调用join()方法的线程结束。(好难翻译,应该是这个意思) 哈哈,这个易懂。 join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,...

    C++11/14 线程的创建与分离的实现

    线程的创建 让我们看看示例代码(t1.cpp). #include #include &lt;thread&gt; void thread_function() { std::cout &lt;&lt; "thread function\n"; } int main() { std::thread t(&thread_function); // 线程 t 开始...

    Java线程

    通过Thread直接创建子线程 实现Runnable接口创建自线程 线程状态(创建、就绪、执行、阻塞、终止) 线程常用方法 inturrupt打断线程 join()线程并行执行变为串行 理解线程的概念 一个程序至少有一个进程,一个进程...

    JAVA多线程编程详解-详细操作例子

    本压缩包,总共包含两个文档,JAVA多线程编程详解-详细操作例子和 Java... 例如,runnable、thread、stop()、 suspend、yield、setPriority()、getPriority()、synchronized、wait()、join、线程池同步阻塞等方法的介绍

    Java多线程详解

    文章目录1、进程与线程2、创建多线程2.1、继承Thread类2.2、实现Runnable接口2.3、使用匿名内部类实现2.4、实现Runnable接口的好处2.5、使用Callable和Future创建线程3、线程的生命周期4、几种特殊线程4.1、join线程...

    Python多线程编程简单介绍

    创建线程 格式如下 复制代码 代码如下: threading.Thread(group=None, target=None, name=None, args=(), kwargs={}) 这个构造器必须用关键字传参调用 ...join(timeout=None) 程序挂起,直到线程结束;如果给了 timeout

    Python快速而美丽[v1.0.0][控制线程]

    Thread类提供了join()函数,它用来让一个线程等待另一个线程执行完成,当程序的执行过程中线程A调用了线程B的join()函数时,线程A将被阻塞,直到线程B执行完成。 该方法的设计主要用于将大的问题拆分成若干个小问题...

    Java 7并发编程实战手册

    7.7 通过实现ThreadFactory接口为Fork/Join框架生成定制线程 267 7.8 定制运行在Fork/Join框架中的任务 273 7.9 实现定制Lock类 278 7.10 实现基于优先级的传输队列 284 7.11 实现自己的原子对象 294 ...

    线程中sleep、join、yield、wait的区别

    CSDN前辈众多,本文要说全部原创,那不现实,但本文绝对走肾之文,概念知识多来自前辈博文讲解,特此感谢。...public class ThreadTest extends Thread{ public ThreadTest(String name){ super(name); } @

Global site tag (gtag.js) - Google Analytics