package test.Thread;
import java.util.Date;
public class testJoin {
public static void main(String[] args) {
// TODO Auto-generated method stub
Runner4 r4 = new Runner4();
Thread t1 = new Thread(r4);
t1.start();
try {
t1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
for (int i = 1; i < 5; i++) {
System.out.println("this is main thread");
}
}
}
class Runner4 implements Runnable {
public void run() {
// TODO Auto-generated method stub
for (int i = 1; i < 5; i++) {
System.out.println("this is runner4 " + new Date());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
System.out.println("rnuuer4 is interrupted");
return;
}
}
}
}
the result of not use join
this is main thread
this is main thread
this is main thread
this is main thread
this is runner4 Fri Sep 05 21:40:22 CST 2008
this is runner4 Fri Sep 05 21:40:23 CST 2008
this is runner4 Fri Sep 05 21:40:24 CST 2008
this is runner4 Fri Sep 05 21:40:25 CST 2008
the result of use join
this is runner4 Fri Sep 05 21:46:23 CST 2008
this is runner4 Fri Sep 05 21:46:24 CST 2008
this is runner4 Fri Sep 05 21:46:25 CST 2008
this is runner4 Fri Sep 05 21:46:26 CST 2008
this is main thread
this is main thread
this is main thread
this is main thread
分享到:
相关推荐
- `join()`方法让调用的线程等待目标线程执行完毕后再继续执行。 2. **`synchronized`关键字**: - `synchronized`用于实现线程同步,防止数据的不一致性。它可以修饰方法或代码块,当一个线程进入同步块/方法后...
在多线程代理IP测试中,我们可以为每个线程分配不同的代理IP,这样可以同时进行多个登录尝试,提高测试效率。例如,创建一个线程池,将每个登录任务作为参数传递给线程,每个线程负责一个登录流程。需要注意的是,多...
Express Logic's ThreadX for Win32 Demo Using Visual C/C++ This demo program is intended for use with the book titled "Real-Time Embedded Multithreading: Using ThreadX and ARM" by Edward L....
最近收集的VB.Net-C#多线程Thread-代理委托delegate编程。文章列表: c#.net多线程同步.txt C#WebBrowser页面与WinForm交互技巧一.txt C#多线程编程-多细全.txt C#多线程编程简单实例.txt C#多线程窗体控件安全访问....
线程组-【弱压力测试】.jmx
操作系统实验中的“MFC线程--购票系统演示”是一个典型的多线程编程示例,它主要涉及了C++编程语言中的Microsoft Foundation Classes (MFC)库,以及操作系统层面的线程管理和线程同步概念。MFC是微软提供的一套面向...
在Java多线程编程中,有时我们需要确保所有子线程执行完毕后再进行后续操作,例如在并发测试、数据聚合或资源清理等场景。本篇文章将详细介绍五种在Java中等待所有子线程执行完的方法。 ### 方法一:使用`sleep`...
### Java多线程--让主线程等待所有子线程执行完毕 #### 核心知识点解析 在Java多线程环境中,让主线程等待所有子线程执行完毕是一个常见的需求,尤其是在处理大量数据或进行高性能计算时。这不仅有助于正确测量...
pthread_create函数用于创建线程,pthread_join函数用于等待线程的结束。我们定义了三个线程,每个线程都执行相同的任务,但是每个线程都有独立的执行顺序和时间。 知识点3:线程的同步 在实验中,我们使用了互斥...
2. 线程安全测试:检查代码是否正确地处理了多线程环境下的数据访问。 3. 资源消耗测试:分析多线程运行时内存、CPU和其他资源的使用情况。 4. 并发测试:评估程序在高并发场景下的稳定性和响应能力。 5. 错误处理和...
在 Linux 下编写多线程程序时,需要使用 pthread_create 函数来创建一个线程,pthread_join 函数来等待一个线程的结束。pthread_create 函数的原型为:extern int pthread_create __P ((pthread_t *__thread, __...
- `join()`方法使当前线程等待另一个线程结束。 3. **常用方法、生命周期** - **题1**:简述线程的生命周期。 - 线程的生命周期包括新建、可运行、阻塞、等待、限时等待和终止六个状态。 - **题2**:`Thread....
例如,如果线程A调用线程B的`join()`方法,线程A会等待线程B完成后再继续执行。 关于如何停止线程,有以下几种策略: 1. **循环结束标记**:这是最推荐的方法,通过在循环中检查一个共享的布尔变量,当这个变量...
### Java Fork-Join框架详解与应用 #### 一、并发编程与Fork-Join框架的引入 在现代计算环境中,多核处理器已经成为标配,这为软件开发者提供了利用硬件并行性的巨大潜力。然而,传统的并发编程模型,如基于线程的...
ForkJoin框架是Java并发编程中的一个重要工具,它基于分治策略,旨在高效处理大量数据。框架的核心思想是将一个大型任务分解成多个小型任务,然后通过并行执行这些子任务来提高处理效率。ForkJoin框架在Hadoop ...
开启过多线程,导致系统频繁切换多个线程,导致处理速度过慢,经常出现未响应。 代码经常写的换繁多无序,维护困难。 使用类似银行叫号系统 线程池内等待网络请求的任务=(排队的人) 最大三个线程=(银行柜台处理...
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
- 守护(Timed Waiting):线程在等待一段时间或等待某个事件发生,如`sleep()`或`join()`。 - 结束(Terminated):线程执行完毕或被中断。 5. **线程优先级** - Java提供了10个级别的线程优先级,`Thread.MIN_...
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
- `public final synchronized void join(long millis) throws InterruptedException`:等待当前线程死亡。 - `public final synchronized void join(long millis, int nanos) throws InterruptedException`:等待...