`
Alchemist-X
  • 浏览: 15897 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

java.lang.Thread join方法

阅读更多

指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行

 

写了个简单的代码

 

public class TestJoin{
	
	public static void main(String[] args){
		Thread2 t2 = new Thread2();
		Thread1 t1 = new Thread1(t2);
		t1.start();
		t2.start();
	}
}

class Thread1 extends Thread{
	
	private Thread2 t2;
	
	Thread1(Thread2 t2){
		this.t2 = t2;
	}

	/* (non-Javadoc)
	 * @see java.lang.Thread#run()
	 */
	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
			t2.join();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(int i = 0; i<5; i++){
			System.out.println("yi1:"+i);
		}
	}
	
}

class Thread2 extends Thread{

	/* (non-Javadoc)
	 * @see java.lang.Thread#run()
	 */
	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i = 0; i<5; i++){
			System.out.println("er2:"+i);
		}
	}
	
}
运行结果:
er2:0
er2:1
er2:2
er2:3
er2:4
yi1:0
yi1:1
yi1:2
yi1:3
yi1:4
分享到:
评论

相关推荐

    北大青鸟Java.lang.rar经典例子

    `Thread`类代表程序中的一个执行线程,提供了创建、控制和管理线程的方法,如`start()`(启动线程)、`sleep()`(使线程暂停一段时间)和`join()`(等待当前线程结束)。 7. **Character类**:提供了一些处理单个...

    Java线程(Java.Thread)(中英版)

    在Java中,线程是通过`java.lang.Thread`类或者实现`Runnable`接口来创建和管理的。这个资料包包含的是关于Java线程的中英文参考资料,包括书籍和源代码。 "Java.Threads,3rd.Edition.chm"可能是一个关于Java线程的...

    Java课件\thread.rar

    - **通过`Runnable`接口创建**:实现`Runnable`接口,定义`run()`方法,然后将`Runnable`对象作为参数传递给`Thread`类的构造函数,创建`Thread`对象并调用`start()`方法。 2. **线程状态** - 新建(New):线程...

    java1.7API文档

    4. **多线程编程**:`java.lang.Thread`和`java.util.concurrent`包提供了多线程编程的支持。Java 1.7引入了Fork/Join框架,这是一种用于高效执行大量任务的并行计算模型。 5. **IO与NIO**:`java.io`包提供了传统...

    JDK7-API-帮助文档(英文版).rar

    4. **多线程**:`java.lang.Thread`和`java.util.concurrent`包提供了多线程编程的支持,`java.util.concurrent`在JDK 7中进一步完善,增加了并发工具类,如`ExecutorService`和`Future`。 5. **异常处理**:`java....

    javathread.part05.rar

    Java提供了`java.lang.Thread.dumpStack()`帮助诊断死锁,而`java.util.concurrent.locks`包中的`ReentrantLock`和`Condition`可以更精细地控制锁和条件,降低死锁的风险。 此外,`java.util.concurrent`包中的`...

    jAVA线程.docx

    1. **扩展** `java.lang.Thread` **类**:创建一个新的线程类,继承自Thread,并重写run()方法。run()方法包含线程要执行的任务。例如: ```java public class MyThread extends Thread { public void run() { //...

    javathread.part104.rar

    以上只是部分Java线程编程的核心知识点,`javathread.part104.rar`中可能还会包含更多高级主题,如线程池的配置与优化、线程通信(例如`join()`, `Thread.sleep()`, `yield()`)以及并发工具类的深入探讨。...

    java 查看JVM中所有的线程的活动状况

    除了直接使用`ThreadMXBean`,我们还可以使用`Thread`类的静态方法`getAllStackTraces()`获取所有线程的堆栈跟踪映射,这对于定位线程问题也很有帮助。 此外,`jstack`工具是Java开发工具集(JDK)的一部分,它能以...

    JavaThread编程基础.pdf

    首先,Java中的线程是通过`java.lang.Thread`类来表示的,这个类继承自`java.lang.Object`并实现了`Runnable`接口。`Runnable`接口只有一个抽象方法`run()`,它是线程执行的主要逻辑。创建线程主要有两种方式:一是...

    Java多线程编程总结.doc

    Java多线程编程还涉及到线程同步、线程通信、线程状态管理等多个复杂主题,如synchronized关键字、wait()和notify()方法、Thread.join()、Thread.sleep()、线程池等。理解并熟练掌握这些知识点对于编写高效、稳定的...

    JavaEE基础教程 多线程PPT教案学习.pptx

    4. Java.lang.Thread类:Thread 类定义了 8 个常用的构造方法,包括无参数的构造方法和带有线程名的构造方法。Thread 类也实现了 Runnable 接口,但该类有更丰富的方法,如 start () 方法、 run () 方法和 join ()、...

    Java_API_1.7中文 高清完整CHM版

    4. **多线程**:Java 7提供了更强大的多线程支持,`java.lang.Thread`类和`java.util.concurrent`包中的`ExecutorService`、`Future`、`Callable`等接口,使得并发编程更加灵活高效。 5. **NIO.2**:Java 7引入了非...

    Java API大集合

    - **`java.lang.Thread`类**:表示程序中的一个执行线程,提供了线程控制的相关方法,如`start()`、`sleep()`、`join()`等。 - **`java.util.concurrent`包**:提供了线程池、同步工具类(如`Semaphore`、`...

    java中的线程使用.pdf

    Java中的线程使用主要涉及到java.lang.Thread类和java.lang.Runnable接口。 Thread类是实现线程的直接方式,它实现了Runnable接口。开发者可以通过继承Thread类并重写其run方法来定义线程要执行的任务。一旦创建...

    Java多线程编程总结

    - **实现 `java.lang.Runnable` 接口**:创建实现了 `Runnable` 接口的对象,并通过 `Thread` 构造方法将其传入,启动该线程将调用对象的 `run()` 方法。 2. **实例化线程** - **扩展 `java.lang.Thread` 类**:...

    Java多线程总结.pdf

    Java提供了多种线程管理方法,例如`sleep()`方法使得线程暂停执行指定的毫秒数,`yield()`方法使得当前线程让出CPU给其他线程执行,`join()`方法使得主线程等待子线程执行完成。 在Java中,线程的优先级可通过`set...

    java基本教程之join方法详解 java多线程教程

    `join()`方法定义在`java.lang.Thread`类中,其主要功能是使调用该方法的线程(这里称为调用线程)暂停执行,直到目标线程(即`join()`方法所在的线程)执行完毕。这样,可以确保调用线程在目标线程执行完成后才...

    java多线程编程教程

    - **继承Thread类**: 可以通过继承`java.lang.Thread`类来定义线程,并重写其中的`run()`方法。需要注意的是,`run()`方法并不是自动调用的,而是通过调用`start()`方法间接调用。 - **实现Runnable接口**: 也可以...

    OS进程管理最终强化版(Java)

    `java.lang.Thread`类和`java.util.concurrent`包提供了丰富的线程操作接口,如`start()`启动线程,`join()`等待线程结束,以及线程池(ThreadPoolExecutor)用于更高效地管理大量并发线程。 Java的并发库还包含锁...

Global site tag (gtag.js) - Google Analytics