多线程---join---模拟打麻将

2024-04-07 15:18

本文主要是介绍多线程---join---模拟打麻将,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

join //加入,让线程加入到当前线程.

public final void join()

多线程join 方法

void join() 等待该线程终止。

void join(long millis) 等待该线程终止的时间最长为millis 毫秒。

特点:当A 线程走到B 线程的join 方法时,A 就会等待B 线程都执行完,A 才会执行

作用: join 可以用来临时加入线程执行;


需求:模拟打麻将

package java.thread;/***join		//加入,让线程加入到当前线程.*/
public class ThreadJoinDemo {public static void main(String[] args) {Player p1 = new Player("张三",1);Player p2 = new Player("李四", 3);Player p3 = new Player("王五", 5);Player p4 = new Player("赵六", 6);p1.start();p2.start();p3.start();p4.start();try {p1.join();p2.join();p3.join();p4.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("开局");}}class Player extends Thread{private  String name0;private  int sleep;public String getName0() {return name0;}public void setName0(String name0) {this.name0 = name0;}public int getSleep() {return sleep;}public void setSleep(int sleep) {this.sleep = sleep;}public Player(String name0, int sleep) {this.name0 = name0;this.sleep = sleep;}@Overridepublic void run() {try {System.out.println(name0+"出发了");Thread.sleep(sleep*1000);System.out.println(name0 + "到了"+"耗时"+sleep+"秒");} catch (InterruptedException e) {e.printStackTrace();}}
}

模拟结果:

张三出发了
李四出发了
赵六出发了
王五出发了
张三到了耗时1秒
李四到了耗时3秒
王五到了耗时5秒
赵六到了耗时6秒
开局

这篇关于多线程---join---模拟打麻将的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/882948

相关文章

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6