/**
*
* 模拟烧茶的过程:
* 1)烧水
* 2)需要茶叶的时候发现没茶叶,叫eric去买(没有茶叶,需要买)
* 3)需要杯子的时候发现没杯子,叫meten去买(没有杯子,需要买)
* 4)放茶叶
* 5)倒水
* @author 够潮
*
*/
public class Demo12 {
/**
* @param args
*/
public static void main(String[] args) {
BurnTea bt = new BurnTea("够潮");
bt.start();
}
}
/**
* 管理线程
* @author 够潮
*
*/
class BurnTea extends Thread{
public BurnTea(String name){
super(name);
}
@Override
public void run() {
System.out.println(this.getName() +"烧水");
System.out.println(this.getName()+"发现没有茶叶了,叫eric去买");
TeaThread teaThread = new TeaThread("eric");
try {
teaThread.start();
teaThread.join();//买茶叶
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getName()+"发现没有茶杯了,meten去买");
TeaCupThread teaCupThread = new TeaCupThread("meten");
try {
teaCupThread.start();
teaCupThread.join();//买茶杯
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getName()+"放茶叶");
System.out.println(this.getName()+"倒水");
System.out.println(this.getName()+"烧好茶了");
}
}
/**
* 买茶叶模拟线程
* @author 够潮
*
*/
class TeaThread extends Thread{
public TeaThread(String name ){
super(name);
}
@Override
public void run() {
System.out.println(this.getName() +"去买茶叶啦");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getName()+"买茶叶回来啦");
}
}
/**
* 没茶杯模拟线程
* @author 够潮
*
*/
class TeaCupThread extends Thread{
public TeaCupThread(String name ){
super(name);
}
@Override
public void run() {
System.out.println(this.getName() +"去买茶杯啦");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getName()+"买茶杯回来啦");
}
}
分享到:
相关推荐
在编程领域,尤其是在开发高效、响应迅速的应用程序时,多线程技术扮演着至关重要的角色。Qt5框架提供了一种方便的方式来实现多线程,它允许开发者在不同的线程中执行任务,从而避免主线程(GUI线程)因处理耗时操作...
3. 服务线程:模拟银行窗口的服务过程,处理每个被叫到的用户。 4. 用户等待线程:用于模拟用户等待叫号的状态,可能包含实时更新等待队列等功能。 二、VC中的多线程编程 在VC环境中,多线程的创建和管理主要依赖...
《多线程实现的模拟QQ程序详解》 在计算机编程领域,多线程技术是一种重要的并发执行机制,它允许多个任务在同一时刻运行,极大地提高了程序的效率和响应性。本篇文章将深入探讨如何利用多线程技术实现一个模拟QQ...
Linux多线程服务端编程:使用muduo+C网络库.pdf Linux多线程服务端编程:使用muduo+C网络库.pdfLinux多线程服务端编程:使用muduo+C网络库.pdfLinux多线程服务端编程:使用muduo+C网络库.pdfLinux多线程服务端编程:...
在这个"Linux下多线程模拟实验"中,我们将深入探讨如何使用C语言在Linux环境下实现生产者-消费者问题,这是一个经典的线程同步问题。 生产者-消费者问题是多线程编程中的一个经典案例,主要用于演示如何通过共享...
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-...
综上所述,“模拟摄像头libuv支持多线程并发”的实现是一个复杂的过程,涉及了进程间通信、异步I/O、多线程管理和网络协议等多个IT领域的知识。通过libuv的高效并发模型,我们可以构建一个能够处理大量并发连接的...
嵌入式实时操作系统的多线程计算:基于ThreadX和ARM.pdf
在本场景中,"多线程客户端请求模拟"是指客户端程序利用多线程技术来并发地向服务器发送请求,以测试或模拟实际网络环境中的高并发情况。这种方式可以更真实地反映出服务器在大量并发请求下的性能表现,帮助开发者...
Java 模拟线程并发是编程领域中的一个重要概念,尤其在多核处理器和高并发应用中,理解并熟练掌握线程并发技术对于提升程序性能至关重要。在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable...
在本文中,我们将深入探讨如何使用多线程技术来模拟火车站售票系统,主要涉及C++编程语言中的线程同步和Windows编程。多线程技术在处理并发任务时能显著提高程序效率,尤其在大型系统中,如火车站售票系统,它需要...
1. **多线程**:多线程是操作系统并发执行的机制,允许多个任务在同一时间片段内交替执行。在电梯仿真程序中,可能有多个线程,如电梯线程、请求服务的乘客线程以及楼层状态更新线程。每个线程代表电梯系统的一个...
在本项目中,我们关注的是多线程同步模拟,这是操作系统设计中的一个关键概念,尤其是在C++环境下,利用MFC(Microsoft Foundation Classes)库进行用户界面操作。 **多线程** 是指在一个进程中同时执行多个线程,...
"多线程设计一个火车售票模拟程序" 在本实验中,我们将使用 Java 语言来设计一个火车售票模拟程序。这个程序模拟了火车站中的售票情况,具有5个售票点,每个售票点都可以售出火车票。我们将使用多线程技术来实现这...
本文将详细介绍JavaScript模拟多线程的概念以及如何使用JavaScript实现类似多线程的效果。 一、JavaScript的单线程模型 JavaScript引擎在设计时遵循了单线程执行的模型,这意味着任何时刻只能执行一个任务。这种...
在Linux操作系统中,多线程模拟进程调度是一个深入理解操作系统内核和并发编程的重要主题。进程调度是操作系统核心的关键组成部分,负责决定哪个进程应该获得CPU的执行权,以及何时进行切换。而通过多线程模拟进程...
说明:本人在给Java游戏开发特训班讲解多线程时,需要说明多线程同步的问题,其中讲解了使用“生产者-消费者”模型来解决同步问题。可是当时特训班的学生不是很明白,特别是不明白这个模型怎么使用。这可能是由于...
标题提到的“vb模拟多线程 本地Timer对多线程”就是一种常见的解决策略,通过使用Windows API中的定时器(Timer)来模拟多线程的效果。 首先,我们来看一下什么是多线程。多线程是指在一个进程中同时执行多个不同的...
在本实验中,我们探讨了如何使用C语言和Windows API实现多线程来模拟汽车司机与售票员的同步操作。这个实验旨在展示并发执行的线程如何通过同步机制协同工作,确保程序的正确运行。 首先,多线程是操作系统中的一种...
在这个"多线程赛马游戏"中,我们利用了Java或其他支持多线程编程的语言,创建了四个线程来模拟四匹马的竞赛过程。这种设计方式使每匹马的运行独立于其他马,从而实现并行竞赛。 首先,我们需要了解线程的基本概念。...