`

Java之线程(join)

    博客分类:
  • Java
阅读更多
运用场景:多个线程之间要求有顺序的执行
Join有三个重载方法
join()                               等待该线程终止
join(long millis)                    等待该线程终止的时间最长为 millis 毫秒
join(long millis, int nanos)     等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒

示例如下:
public class MyThread extends Thread {	
	

	@SuppressWarnings("deprecation")
	@Override
	public void run() {
		System.out.println("咫尺天涯的第一个任务启动了。。。");
		int i = 0;
		while(true){
			System.out.println("执行第一个任务的次数: " + (++i));
			if(i == 5){
				System.out.println("第一个任务执行结束,走人...");
				break;
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}	
			
		}
	}
}

public class MyRunnable implements Runnable {

	@SuppressWarnings("deprecation")
	@Override
	public void run() {		
		System.out.println("咫尺天涯的第二个任务启动了。。。");
		int i = 0;
		while(true){
			System.out.println("执行第二个任务次数: " + (++i));
			if(i == 5){
				System.out.println("第二个任务执行结束,再见朋友们!");
				break;
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}		
	}
}

public class Main {
	
	public static void main(String[] args) {
		
		MyThread mt = new MyThread();
		Thread mythread = new Thread(mt,"咫尺天涯(Thread)");		
		System.out.println("第二个任务要等待第一个任务执行结束才能执行...");		
		mythread.start();	
		
		try {			
			mythread.join();	
			//执行后,当前线程不会向下执行,直到把mythread这个线程执行完了后才执行下面的
		} catch (InterruptedException e) {
			e.printStackTrace();
		}	
		
		MyRunnable myRunnable = new MyRunnable();		
		Thread runnable = new Thread(myRunnable,"咫尺天涯(Runnable)");
		runnable.start();				
	}
}
分享到:
评论

相关推荐

    Java多线程知识点总结

    此外,sleep方法可以使线程进入阻塞状态一段时间,而join方法则允许一个线程等待另一个线程完成其任务。 了解线程池的概念也是Java多线程编程中的一个重要知识点。线程池是一种多线程处理形式,它将线程和任务的...

    java多线程Demo

    Java线程有10个优先级(MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY),默认优先级是NORM_PRIORITY。但是,线程优先级并不保证绝对的执行顺序,操作系统调度策略可能影响实际执行顺序。 7. join()方法: 一个线程...

    java多线程经典案例

    阻塞状态通常发生在线程等待I/O操作完成、调用sleep()方法、等待锁释放或者调用join()方法等待其他线程结束时。 在`threadTest`这个案例中,我们可能会看到如何使用这些概念来创建实际的应用场景。例如,一个典型的...

    java多线程的讲解和实战

    - `join()`方法:让当前线程等待另一个线程完成其执行。 4. **线程优先级与调度**:Java的`Thread`类提供了设置线程优先级的方法,如`setPriority(int priority)`,但实际线程调度依赖于操作系统的策略,优先级并...

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

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

    Java多线程机制(讲述java里面与多线程有关的函数)

    线程联合(Join)是让一个线程等待另一个线程完成后再继续执行,通过调用`join()`方法实现。 9.11 守护线程: 守护线程(Daemon)是一种不阻止程序退出的线程,如垃圾收集器就是守护线程。当所有非守护线程结束时,...

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

    以上就是对Java线程中wait、await、sleep、yield、join用法的总结。这些方法在实际开发中,对于控制多线程运行的时序和协调非常关键。理解这些方法的正确使用方式是掌握Java并发编程的基础。同时,使用时需特别注意...

    java 多线程示例

    Java线程有10个优先级,从`MIN_PRIORITY`(1)到`MAX_PRIORITY`(10),默认是`NORM_PRIORITY`(5)。优先级高的线程更可能被调度执行,但不保证。 4. **线程同步** 当多个线程访问共享资源时,可能会出现竞态条件,...

    Java多线程实现异步调用实例

    `Thread.join()`可以让主线程等待子线程完成后再继续执行。 “异步”标签则涉及到了程序设计中的非阻塞特性,有助于提升系统的并发能力和响应性。Java 8引入的CompletableFuture提供了一种更高级的异步编程模型,...

    深入浅出 Java 多线程.pdf

    Thread 类是一个基本的线程类,它提供了许多有用的方法来控制线程的执行,如 start() 方法、join() 方法、sleep() 方法等。Runnable 接口是一个函数式接口,它提供了一个 run() 方法,用于定义线程的执行逻辑。 二...

    Java多线程技术精讲

    创建Java线程主要有两种方式:继承Thread类和实现Runnable接口。继承Thread类可以直接重写run()方法,而实现Runnable接口则需要提供一个包含业务逻辑的run()方法,并通过构造Thread对象传入该Runnable实例。后者更为...

    java多线程示例

    在Java编程语言中,多线程是核心特性之一,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应速度。本示例着重探讨如何在Java中实现和管理多线程,以及它带来的挑战和解决方案。 一、Java多线程基础 1. ...

    java多线程进阶

    此外,可能会探讨`join()`, `Thread.yield()`等控制线程行为的方法。 4. **并发工具类**:Java并发包(`java.util.concurrent`)中的各种工具类,如`ExecutorService`, `Future`, `Callable`, `CountDownLatch`, `...

    java多线程例子

    在 Java 中,线程可以使用 join() 方法来等待其他线程的结束。join() 方法可以使当前线程等待指定的线程结束后继续执行。 ```java public class ThreadDemo { public static void main(String[] args) { Thread t...

    Java多线程资料

    - 等待(Waiting):线程调用wait()、join()或park()方法,进入等待状态,直到其他线程唤醒。 - 完结(Terminated):run()方法执行完毕或线程被中断。 3. **线程同步** - synchronized关键字:用于修饰方法或...

    Java多线程下载

    可以使用`wait()`、`notify()`或`join()`方法实现线程间的同步。 8. **网络请求库**:通常会用到HTTP客户端库,如Apache HttpClient、OkHttp或Java内置的`java.net.HttpURLConnection`,它们提供接口来发起HTTP请求...

    java 多线程.ppt,多线程

    Java线程有五种基本状态:新建(NEW)、可运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)和终止(TERMINATED)。线程从新建到终止会经历这些状态的转换。 4. 线程同步与互斥: 为了避免多线程环境下资源...

    Java多线程编程总结

    #### 一、Java线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个进程拥有独立的内存空间。...

    java多线程小汽车运行程序

    例如,可能会有创建和启动线程的示例,以及使用`join()`方法使主线程等待子线程完成的场景。通过分析和学习这段代码,我们可以更好地理解Java多线程的工作原理和实际应用。 总之,Java多线程技术是开发高并发应用...

    java多线程源码-source

    Java提供了几种方法来控制线程的执行,如sleep(), join(), yield(), interrupt()等。sleep()方法使当前线程进入睡眠状态;join()让当前线程等待指定线程结束后再继续执行;yield()则让当前线程暂停,给其他线程执行...

Global site tag (gtag.js) - Google Analytics