线程等待
package com.dragon.test3;
/**
* 线程等待
* @author Administrator
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FirstThread firstThread = new FirstThread();
SecondThread secondThread = new SecondThread();
ThirdThread thirdThread= new ThirdThread();
firstThread.start();
secondThread.start();
thirdThread.start();
}
}
/**
* 创建第一个线程
* @author Administrator
*
*/
class FirstThread extends Thread{
public void run(){
for (int i = 0; i < 5; i++) {
try {
System.out.println("第一个线程第"+i+"次循环");
Thread.sleep(1000);//线程休眠
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 第二个线程
* @author Administrator
*
*/
class SecondThread extends Thread{
public void run(){
for (int i = 0; i < 5; i++) {
try {
System.out.println("第二个线程第"+i+"次循环");
Thread.sleep(1000);//线程休眠
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i==3){
System.out.println("加入线程一");
try {
FirstThread.currentThread().join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//加入线程一
}
}
}
}
/**
* 第三个线程
* @author Administrator
*
*/
class ThirdThread extends Thread{
public void run(){
for (int i = 0; i < 5; i++) {
try {
System.out.println("第三个线程第"+i+"次循环");
Thread.sleep(1000);//线程休眠
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
相关推荐
继承Thread类: 1必须重写run 方法:里面放置的实际的线程体 2 启动线程: 3创建Thread对象 4调用Thread对象的start 方法启动线程
Thread 类定义了三种线程状态:新建(THREAD_STATUS_NEW)、正在运行(THREAD_STATUS_RUNNING)和运行结束(THREAD_STATUS_EXIT)。线程状态可以通过 getState() 方法获取。 4. 线程的启动和停止 Thread 类提供了 ...
其中,`Thread.IsAlive`属性是一个非常重要的成员,它允许开发者检查线程的当前状态,以确定线程是否已经启动并且仍在运行。在理解`Thread.IsAlive`属性的用法之前,我们需要先了解一些基本的线程概念。 1. **线程...
`moveToThread`函数是QT多线程编程中的一个重要方法,它允许我们将一个对象移动到指定的QThread对象中,从而使该对象的工作在新的线程上下文中执行。 首先,理解多线程的基本概念至关重要。在计算机科学中,线程是...
本实例将详细讲解如何利用Thread类来创建和管理线程。 首先,理解线程的基本概念至关重要。线程是程序执行的最小单元,每个线程都拥有自己的内存空间,可以独立执行代码。在VB中,多线程通常用于执行耗时操作,如...
thread线程的基本入门文档 适合入门学习 讲的比较广 深度说的不多
System.Threading命名空间中的Thread类是实现多线程的基础,提供了创建、控制和管理线程的方法。本文将深入探讨C#多线程编程,包括Thread类的使用以及线程同步的相关知识。 ### 1. Thread类介绍 Thread类是C#中处理...
`Thread.CurrentThread`是静态属性,可以用来检查当前线程的状态,如是否是主线程、是否是后台线程等。例如: ```csharp Console.WriteLine("当前线程是前台线程吗? " + Thread.CurrentThread.IsBackground); ``` ...
在Java、C#等语言中,多线程是通过`Thread`类来实现的,这也是标题中提到的"thread线程"。通过创建和管理多个线程,程序可以更高效地利用系统资源,尤其是在多核处理器环境下,能够显著提高程序的运行效率。 多线程...
`Thread`类是Java中的核心类,它允许我们创建并控制独立的执行线程。在这个实例中,我们将深入探讨如何使用`Thread`类创建和管理多线程。 1. **线程的基本概念** - **线程**:线程是程序执行的最小单元,一个进程...
多线程thread多线程thread多线程thread多线程thread多线程thread
信号量是RT-Thread中用于线程同步的一种核心机制。它们是一种轻量级的对象,用于管理共享资源的数量,以避免多线程之间的冲突。信号量包含一个数值和一个等待队列。当信号量值大于零时,线程可以获取信号量,信号量...
在“stm32f103c8t6移植RT-Thread之线程管理”这个主题中,我们将探讨如何在STM32F103C8T6上创建和管理线程,以及线程如何与裸机程序相比提供更高级别的抽象和灵活性。 首先,我们需要了解RT-Thread的内核启动流程,...
在Java编程中,线程(Thread)是程序执行的基本单元,它允许程序同时执行多个任务。线程在多任务处理中扮演着至关重要的角色,尤其是在现代计算机系统中,多线程已经成为提高性能和效率的标准手段。`Thread`类是Java...
基于博客中Rt-Thread学习笔记-----线程创建(三)的测试工程。里面包含RTThread的单线程动态、静态创建,以及多线程动态静态的配合(基于Stm32F103Zet6、Keil5、rtthread3.1.3)
本篇文章将详细探讨如何通过`Thread`类在C#中建立线程,并深入理解线程的工作原理及相关知识点。 首先,创建一个新的线程通常涉及到以下几个步骤: 1. **定义线程方法**:线程执行的任务通常封装在一个方法中。这...
Java中的`Thread`类是实现多线程的核心类,通过创建并启动`Thread`对象,我们可以让程序并行运行不同的任务,从而提高程序的效率。本文将深入探讨如何使用`Thread`类来创建和启动新线程。 首先,让我们了解`Thread`...
在多线程编程这块,我们经常要使用Handler(处理),Thread(线程)和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而...
C#Thread后台线程使用
在"Qt UDP QUdpSocket多线程实例 movetothread"的场景中,我们将探讨如何将`QUdpSocket`操作放到单独的线程中,以避免阻塞主线程并提高系统效率。 首先,理解UDP和TCP的区别是重要的。TCP是一种面向连接的协议,...