`

多线程的配合使用

阅读更多
1、为Thread撰写两个子类,其中一个的run()在启动后取得第二个Thread object reference,然后调用wait()。另一个子类的run()在过了数秒之后调用notifyAll(),唤醒第一个线程,使第一个线程可以印出消息。
MasterThread类
public class MasterThread extends Thread {

	 public static void main(String[] args) {
		 
		 MasterThread mt = new MasterThread();
		 mt.start();
	 }

	 public void run() {
		 
		SlaverThread st = new SlaverThread(this);
		st.start();
		synchronized (this) {
			try {
					this.wait();
			} catch (InterruptedException e) {
					
				e.printStackTrace();
			}
		}
		System.out.println("MasterThread say hello!");
	} 
}


2、SlaverThread 类
public class SlaverThread extends Thread {
	
	 private Thread mt = null;
	 
	 public SlaverThread(Thread mt) {
	  this.mt = mt;
	 }

	 public void run() {
		 
	  try {
		   System.out.println("SlaverThread started..");
		   sleep(3000);
		   System.out.println("3 second past");
	  } catch (InterruptedException e) {
		  
		  e.printStackTrace();
	  }
	  System.out.println("notify MasterThread");
	  synchronized (mt) {
		  
		  mt.notifyAll();
	  }  
	 }

	}
分享到:
评论

相关推荐

    Arduino 使用多线程例子

    多线程在Arduino上的实现还有其他策略,如使用Firmata库配合计算机上的软件实现远程控制,或者使用如TaskScheduler、FastInterrupt等第三方库来管理任务队列,它们可以模拟并发执行的效果。 在压缩包文件“PT_MOTOR...

    C_同步异步SOCKET通讯和多线程总结.doc

    而对于需要快速响应大量短连接的场景,异步Socket和多线程配合使用更为合适。 总的来说,理解和掌握C#.NET中的Socket通信和多线程技术,是开发高效、稳定网络应用的关键。开发者需要根据实际业务需求,灵活运用这些...

    可并行递归算法的递归多线程实现

    Java作为一门广泛使用的高级编程语言,其内置的多线程机制为开发者提供了丰富的工具,以便在多核架构上进行高效编程。在递归算法中,利用Java的多线程特性可以显著提升算法的执行效率,尤其是在处理大规模数据集时。...

    WinForm下多线程配合Invoke函数ping百度实例。

    在这个“WinForm下多线程配合Invoke函数ping百度实例”中,我们将深入探讨如何在VB.NET环境下使用多线程和Invoke方法来并发执行任务,并与主线程执行进行对比。 首先,让我们了解什么是多线程。在计算机编程中,...

    C#多线程排序例子

    尽管`Task`不是直接用于多线程,但常用于异步操作,可与线程配合使用提高性能。 7. **线程池**:线程池是一种线程管理机制,它会重复使用已创建的线程,避免频繁创建和销毁线程的开销。在执行大量短期任务时,使用...

    多线程基础与基于多线程的简单聊天室

    服务器端使用多线程处理来自不同客户端的连接请求,客户端则通过连接服务器进行通信。通过多线程,服务器可以同时处理多个并发连接,提升系统的并行处理能力。 10. **多线程的调试**:在开发过程中,利用Java的...

    Linux系统下的多线程编程入门.pdf

    多线程编程需考虑性能优化,包括减少上下文切换、合理分配工作负载、使用合适的同步机制等。调试多线程程序通常较复杂,gdb等调试器提供了线程查看和控制功能,帮助开发者定位问题。 总结,Linux系统的多线程编程为...

    易语言多线程访问网页

    本主题将深入探讨如何使用易语言实现多线程访问网页的功能。 在多线程访问网页的场景中,通常涉及到以下几个关键知识点: 1. **线程基础**:线程是操作系统调度的基本单位,一个进程可以包含多个线程。在易语言中...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例)__(0521).rar

    这个压缩包文件包含了六个C#.NET多线程的实例,涵盖了从基础到高级的多线程使用场景,包括了线程的基本操作和线程间的同步与互斥。 1. **线程基础** - **创建线程**:在C#中,可以使用`Thread`类来创建和启动新...

    C++ 多线程日志记录

    本文将深入探讨如何使用C++实现多线程日志记录,包括涉及的关键概念、技术以及如何通过提供的文件`log.cpp`、`log.h`和`readme.txt`来理解和应用这些知识。 首先,我们要理解多线程的概念。在C++中,通过 `<thread>...

    基于VS2010的C++多线程开发Demo

    本文将深入探讨如何使用VS2010进行C++多线程开发,通过一个具体的Demo来阐述相关概念和技术。 首先,我们要明白C++中的多线程。在单线程程序中,所有任务都在同一个执行流中完成,而多线程则允许程序同时执行多个...

    Java多线程练习题

    理解并掌握多线程的使用对于任何Java开发者来说都至关重要。 一、线程的创建与启动 1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写run()方法。创建对象后,调用start()方法启动线程。 2. 实现...

    vc6多线程 多线程进度百分比

    在Windows环境下,我们可以使用Microsoft的C++运行时库(CRT)或者Windows API来创建和管理多线程。VC6支持使用`_beginthread`或`_beginthreadex`函数来创建线程,这两个函数会返回一个线程句柄,可用于后续的线程...

    spring boot注解事务+多线程

    本示例将深入探讨如何使用注解来实现事务控制以及如何在Spring Boot中运用多线程。 首先,让我们关注"注解事务"。在Spring框架中,我们主要依赖`@Transactional`注解来声明事务边界。当一个方法被这个注解标记时,...

    C#文件多线程复制代码

    本文将详细讲解如何利用C#实现文件的多线程复制,包括线程池的使用、线程数量限制以及FileStream类的读写功能。 首先,线程是操作系统分配CPU时间的基本单位,每个线程负责执行一个独立的任务。在C#中,我们可以...

    Win32多线程程序设计全部代码

    在Windows平台上进行软件开发时,Win32 API是不可或缺的一部分,尤其在涉及到多线程编程时。本资源“Win32多线程程序设计全部代码”提供了完整的源代码示例,帮助开发者深入理解和实践如何在Win32环境下创建和管理多...

    多任务多线程demo.zip_C#_C# 多任务下载_下载_多任务_多线程

    在这个"多任务多线程下载"的案例中,开发者可能使用了`Task`类来创建多个下载任务,并通过`Task.Run`或`Task.Factory.StartNew`方法启动它们。每个任务负责下载文件的一部分,这样可以充分利用系统资源,提高下载...

    Indy多线程程序客户端演示程序

    - TIdIOHandler:负责数据的读写,通常与TIdTCPClient配合使用。你可以通过Write和Read方法传输数据。 2. **多线程编程**: - 在Delphi或C++Builder中,可以使用TThread类来创建自定义线程。每个线程都可以有自己...

    多线程测试程序

    此外,理解这两个函数的工作原理和使用场景,有助于开发出高效且可维护的多线程程序。在设计多线程应用时,开发者需要考虑如何合理分配任务,避免阻塞和饥饿,以及如何优雅地处理线程的创建、销毁和异常情况。通过...

Global site tag (gtag.js) - Google Analytics