多线程练习题

文章目录

  • 卖票
    • Thread线程类
    • 测试类
    • 运行结果
  • 送礼物
    • Thread线程类
    • 测试类
    • 运行结果
  • 打印奇数数字
    • Thread线程类
    • 测试类
    • 运行结果
  • 抢红包
    • Thread线程类
    • 测试类
  • 抽奖箱
    • Thread线程类
    • 测试类


卖票

在这里插入图片描述

Thread线程类

package demo1;public class Ticket extends Thread{public static int num=100;@Overridepublic void run() {while(true){synchronized (Ticket.class){if(num>0){System.out.println(getName()+"卖第 "+num+" 张门票");num--;try {//线程休眠一段时间Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}}else{break;}}}}
}

测试类

package demo1;public class Main {public static void main(String[] args) {Ticket t1=new Ticket();Ticket t2=new Ticket();t1.start();t2.start();}
}

运行结果

D:\Program\JDK17.0.9\bin\java.exe "-javaagent:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\lib\idea_rt.jar=5665:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\bin" -Dfile.encoding=UTF-8 -classpath E:\WorkSpace\IDEA\Java\DuoXianChengDemo\DuoXianChengDemo\target\classes demo1.Main
Thread-0卖第 100 张门票
Thread-0卖第 99 张门票
Thread-0卖第 98 张门票
Thread-0卖第 97 张门票
Thread-0卖第 96 张门票
Thread-0卖第 95 张门票
Thread-0卖第 94 张门票
Thread-0卖第 93 张门票
Thread-0卖第 92 张门票
Thread-0卖第 91 张门票
Thread-0卖第 90 张门票
Thread-0卖第 89 张门票
Thread-0卖第 88 张门票
Thread-0卖第 87 张门票
Thread-0卖第 86 张门票
Thread-1卖第 85 张门票
Thread-1卖第 84 张门票
Thread-1卖第 83 张门票
Thread-1卖第 82 张门票
Thread-1卖第 81 张门票
Thread-1卖第 80 张门票
Thread-0卖第 79 张门票
Thread-1卖第 78 张门票
Thread-0卖第 77 张门票
Thread-0卖第 76 张门票
Thread-0卖第 75 张门票
Thread-0卖第 74 张门票
Thread-0卖第 73 张门票
Thread-0卖第 72 张门票
Thread-0卖第 71 张门票
Thread-0卖第 70 张门票
Thread-1卖第 69 张门票
Thread-1卖第 68 张门票
Thread-1卖第 67 张门票
Thread-0卖第 66 张门票
Thread-0卖第 65 张门票
Thread-1卖第 64 张门票
Thread-1卖第 63 张门票
Thread-1卖第 62 张门票
Thread-0卖第 61 张门票
Thread-0卖第 60 张门票
Thread-0卖第 59 张门票
Thread-0卖第 58 张门票
Thread-0卖第 57 张门票
Thread-0卖第 56 张门票
Thread-0卖第 55 张门票
Thread-0卖第 54 张门票
Thread-0卖第 53 张门票
Thread-0卖第 52 张门票
Thread-0卖第 51 张门票
Thread-0卖第 50 张门票
Thread-0卖第 49 张门票
Thread-0卖第 48 张门票
Thread-0卖第 47 张门票
Thread-0卖第 46 张门票
Thread-0卖第 45 张门票
Thread-0卖第 44 张门票
Thread-0卖第 43 张门票
Thread-0卖第 42 张门票
Thread-1卖第 41 张门票
Thread-1卖第 40 张门票
Thread-0卖第 39 张门票
Thread-0卖第 38 张门票
Thread-0卖第 37 张门票
Thread-0卖第 36 张门票
Thread-0卖第 35 张门票
Thread-0卖第 34 张门票
Thread-0卖第 33 张门票
Thread-1卖第 32 张门票
Thread-1卖第 31 张门票
Thread-1卖第 30 张门票
Thread-0卖第 29 张门票
Thread-0卖第 28 张门票
Thread-0卖第 27 张门票
Thread-0卖第 26 张门票
Thread-1卖第 25 张门票
Thread-0卖第 24 张门票
Thread-0卖第 23 张门票
Thread-0卖第 22 张门票
Thread-0卖第 21 张门票
Thread-0卖第 20 张门票
Thread-1卖第 19 张门票
Thread-1卖第 18 张门票
Thread-1卖第 17 张门票
Thread-1卖第 16 张门票
Thread-1卖第 15 张门票
Thread-1卖第 14 张门票
Thread-1卖第 13 张门票
Thread-1卖第 12 张门票
Thread-1卖第 11 张门票
Thread-1卖第 10 张门票
Thread-0卖第 9 张门票
Thread-1卖第 8 张门票
Thread-1卖第 7 张门票
Thread-1卖第 6 张门票
Thread-1卖第 5 张门票
Thread-0卖第 4 张门票
Thread-0卖第 3 张门票
Thread-0卖第 2 张门票
Thread-1卖第 1 张门票进程已结束,退出代码为 0


送礼物

在这里插入图片描述

Thread线程类

package demo1;public class Ticket extends Thread{public static int num=100;@Overridepublic void run() {while(true){synchronized (Ticket.class){if(num>10){System.out.println(getName()+"送 "+num);num--;try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}}else{break;}}}}
}

测试类

package demo1;public class Main {public static void main(String[] args) {Ticket t1=new Ticket();Ticket t2=new Ticket();t1.setName("小张");t2.setName("小   王");t1.start();t2.start();}
}

运行结果

D:\Program\JDK17.0.9\bin\java.exe "-javaagent:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\lib\idea_rt.jar=5739:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\bin" -Dfile.encoding=UTF-8 -classpath E:\WorkSpace\IDEA\Java\DuoXianChengDemo\DuoXianChengDemo\target\classes demo1.Main
小张送 100
小张送 99
小张送 98
小张送 97
小张送 96
小张送 95
小张送 94
小张送 93
小张送 92
小张送 91
小张送 90
小张送 89
小张送 88
小   王送 87
小   王送 86
小   王送 85
小   王送 84
小   王送 83
小   王送 82
小   王送 81
小   王送 80
小   王送 79
小   王送 78
小   王送 77
小   王送 76
小   王送 75
小张送 74
小   王送 73
小   王送 72
小   王送 71
小   王送 70
小   王送 69
小   王送 68
小张送 67
小张送 66
小张送 65
小张送 64
小   王送 63
小   王送 62
小   王送 61
小张送 60
小张送 59
小张送 58
小   王送 57
小张送 56
小张送 55
小张送 54
小   王送 53
小张送 52
小   王送 51
小张送 50
小张送 49
小张送 48
小张送 47
小   王送 46
小   王送 45
小   王送 44
小   王送 43
小   王送 42
小   王送 41
小   王送 40
小   王送 39
小   王送 38
小   王送 37
小   王送 36
小   王送 35
小   王送 34
小   王送 33
小   王送 32
小   王送 31
小   王送 30
小   王送 29
小   王送 28
小   王送 27
小   王送 26
小   王送 25
小   王送 24
小   王送 23
小   王送 22
小   王送 21
小张送 20
小张送 19
小张送 18
小张送 17
小张送 16
小张送 15
小张送 14
小张送 13
小张送 12
小张送 11进程已结束,退出代码为 0


打印奇数数字

在这里插入图片描述

Thread线程类

package demo1;
public class MyThread extends Thread{public static int num=0;@Overridepublic void run() {while(true){synchronized (MyThread.class){if(num<=100){if(num%2==1){try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println(getName()+"   "+num);}else{System.out.println(num);}num++;}else{break;}}}}
}

测试类

package demo1;public class Main {public static void main(String[] args) {MyThread t1=new MyThread();MyThread t2=new MyThread();t1.setName("小张");t2.setName("小   王");t1.start();t2.start();}
}

运行结果

D:\Program\JDK17.0.9\bin\java.exe "-javaagent:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\lib\idea_rt.jar=6107:D:\Program\IDEA202303\IntelliJ IDEA 2023.3\bin" -Dfile.encoding=UTF-8 -classpath E:\WorkSpace\IDEA\Java\DuoXianChengDemo\DuoXianChengDemo\target\classes demo1.Main
0
小张   1
2
小张   3
4
小张   5
6
小张   7
8
小张   9
10
小张   11
12
小张   13
14
小张   15
16
小张   17
18
小张   19
20
小张   21
22
小   王   23
24
小   王   25
26
小   王   27
28
小   王   29
30
小   王   31
32
小   王   33
34
小   王   35
36
小   王   37
38
小   王   39
40
小   王   41
42
小   王   43
44
小   王   45
46
小   王   47
48
小   王   49
50
小   王   51
52
小   王   53
54
小   王   55
56
小   王   57
58
小   王   59
60
小   王   61
62
小   王   63
64
小   王   65
66
小张   67
68
小张   69
70
小   王   71
72
小   王   73
74
小   王   75
76
小张   77
78
小张   79
80
小张   81
82
小张   83
84
小张   85
86
小张   87
88
小张   89
90
小张   91
92
小张   93
94
小张   95
96
小张   97
98
小张   99
100进程已结束,退出代码为 0


抢红包

在这里插入图片描述

Thread线程类

package demo1;import java.util.Random;public class MyThread extends Thread {//共享的金额public static double money = 100;//红包的个数public static int count = 3;//最小的金额public static final double MIN = 0.01;@Overridepublic void run() {while (true) {synchronized (MyThread.class) {if(count==0){System.out.println(getName()+"没抢到红包");}else{//抽取到了红包if(count==1){System.out.println(getName()+"抢到红包,金额:"+money);money=0;count=0;}else{Random random=new Random();count--;double num=money-MIN*count;double price=random.nextDouble(num);if(price<=MIN){price=MIN;}System.out.println(getName()+"抢到红包,金额:"+price);money=money-price;}}}}}
}

测试类

package demo1;import abc.MyThread;import java.util.Random;public class Main {public static void main(String[] args) {MyThread t1=new MyThread();MyThread t2=new MyThread();MyThread t3=new MyThread();MyThread t4=new MyThread();MyThread t5=new MyThread();
//        t1.setName("小张");
//        t2.setName("小   王");t1.start();t2.start();t3.start();t4.start();t5.start();}
}

抽奖箱

在这里插入图片描述

Thread线程类

package demo1;import java.util.ArrayList;
import java.util.Collections;public class MyThread extends Thread {public static ArrayList<Integer> list;public MyThread(int[] nums) {list = new ArrayList<>();for (int num : nums) {list.add(num);}}@Overridepublic void run() {while (true) {synchronized (MyThread.class) {if (list.isEmpty()) {break;} else {//打乱集合Collections.shuffle(list);int money = list.remove(0);System.out.println(getName() + "   " + money);}}try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}
}

测试类

package demo1;
import java.util.Random;public class Main {public static void main(String[] args) {int[] nums=new int[]{1,2,3,4,5,6,7,8,9,10};MyThread t1=new MyThread(nums);MyThread t2=new MyThread(nums);t1.setName("    1 ");t1.start();t2.start();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超详细——集成学习——Adaboost实现多分类——附代码

资料参考 1.【集成学习】boosting与bagging_哔哩哔哩_bilibili 集成学习——boosting与bagging 强学习器&#xff1a;效果好&#xff0c;模型复杂 弱学习器&#xff1a;效果不是很好&#xff0c;模型简单 优点 集成学习通过将多个学习器进行结合&#xff0c;常可获得比单一…

04-23 周二 shell环境下读取使用jq 读取json文件

04-23 周二 shell环境下读取使用jq 读取json文件 时间版本修改人描述04-23V0.1宋全恒新建文档 简介 工具列表 Shell脚本处理JSON数据工具jq jshon是另外一个读取json数据的工具 而且其支持XML和YAML格式文件 linux shell环境下处理yml文件 #!/bin/bash# 加载shyaml库 . /…

linux查看ip和端口

1. ip addr ip addr 或者 ip addr show 输出包含了网络接口的名称、状态、MTU&#xff08;Maximum Transmission Unit&#xff09;、链路层地址&#xff08;如MAC地址&#xff09;、IPv4和IPv6地址等信息。 2. 只需要 ip地址 ipV4 ip addr | grep inet ipV6 3.查看端口 s…

记一次favicon.ico的折腾

某项目需要将前端和后台整合在一起 我也不知道为啥要整合 上面有要求就整呗 正常前端npm run build打包后 dist内会根据设置自动生成favicon.ico文件在根目录下 但由于前后端整合 需要打包后将图标放在dist下的static文件夹里 需要的效果 打包后 index.html里 <link rel&…

渲染农场怎么渲染照片级效果图?

当讨论3D渲染的真实性时&#xff0c;不可避免地会将目光投向渲染农场。这些基于云的计算大军&#xff0c;专门负责逐帧打造接近现实的画面效果&#xff0c;无论是在电影动画还是在效果图制作等行业&#xff0c;都扮演着重要的支撑角色。对观众来说&#xff0c;画面的真实性几乎…

探索LLM在广告领域的应用——大语言模型的新商业模式和新个性化广告的潜力

概述 在网络搜索引擎的领域中&#xff0c;广告不仅仅是一个补充元素&#xff0c;而是构成了数字体验的核心部分。随着互联网经济的蓬勃发展&#xff0c;广告市场的规模已经达到了数万亿美元&#xff0c;并且还在持续扩张。广告的经济价值不断上升&#xff0c;它已经成为支撑大…

单调栈|84.柱状图中最大的矩形

力扣题目链接 // 版本一 class Solution { public:int largestRectangleArea(vector<int>& heights) {int result 0;stack<int> st;heights.insert(heights.begin(), 0); // 数组头部加入元素0heights.push_back(0); // 数组尾部加入元素0st.push(0);// 第一…

C++入门基础(四)

目录 auto关键字(C11)类型别名思考auto的使用细则auto与指针和引用结合起来使用在同一行定义多个变量 auto不能推导的场景auto不能作为函数的参数auto不能直接用来声明数组 复杂场景下的auto 基于范围的for循环(C11)范围for的语法范围for的使用条件 指针空值---nullptr(C11)C98…

【vue-echarts】 报错问题解决 “Error: Component series.pie not exists. Load it first.“

目录 问题描述解决【解决1】【解决2】 问题描述 使用 vue-echarts 时导入的文件 import VChart from vue-echarts/components/ECharts import echarts/lib/chart/line import echarts/lib/chart/bar import echarts/lib/chart/pie import echarts/lib/component/legend impor…

SourceTree打开就闪退

问题背景&#xff1a;Windows 10 系统提示更新&#xff0c;然后SourceTree没有正常关闭&#xff0c;导致系统升级后打开该软件闪退&#xff0c;系统重启也无法解决。 1、打开文件位置 右键“Sourcetree”桌面快捷图标&#xff0c;点击“打开文件所在位置” 2、找到Local目录…

虚拟机装CentOS镜像

起先&#xff0c;是先安装一个VM虚拟机&#xff0c;再去官方网站之类的下载一些镜像&#xff0c;常见镜像有CentOS镜像&#xff0c;ubantu镜像&#xff0c;好像还有一个树莓还是什么的&#xff0c;软件这块&#xff0c;日新月异&#xff0c;更新太快&#xff0c;好久没碰&#…

HNU-人工智能-实验4-基于Resnet的分类器

前言 本实验是自选实验&#xff0c;可以在给定范围内选择。 我刚刚提交了实验报告&#xff0c;暂时不准备放出我自己的实验报告&#xff0c;大概在截止提交之后我再放。 之所以这么着急写blog&#xff0c;是想便利还没做实验的同学。 如果选择的也是这个“毒蘑菇识别”的分类器…

c++ 线程交叉场景试验

1.需求 1.处理一个列表的数据&#xff0c;要求按照列表的数据处理10个数据 2.可以使用多线程处理&#xff0c;但是针对每个线程&#xff0c;1~10的处理顺序不能变。 3.每个数据的处理必须原子&#xff0c;即只有一个线程可以针对某个数据进行处理&#xff0c;但是10个数据是可…

资源池管理

资源池相关概念 1、什么是资源池 资源池是灵活管理资源的逻辑抽象。资源池可以分组为层次结构&#xff0c;用于对可用的CPU和内存资源按层次结构进行分区。 2、为什么使用资源池 使用资源池可以委派对主机(或集群)资源的控制权&#xff0c;在使用资源池划分群集内的所有资 源时…

jdk环境安装

jdk安装 创建软件安装的目录 mkdir -p /bigdata/{soft,server} /bigdata/soft 安装文件的存放目录 /bigdata/server 软件安装的目录 把安装的软件上传到/bigdata/soft 目录 解压到指定目录 -C :指定解压到指定目录 tar -zxvf /bigdata/soft/jdk-8u241-linux-x64.tar.gz -C /b…

道可道,非常道,名可名,非常名;学习道德经新解读!打破思想钢印——早读(逆天打工人爬取热门微信文章解读)

你读过道德经吗? 引言Python 代码第一篇 洞见 原来这就是&#xff1a;穷人的思想钢印第二篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 知识始于好奇 终于智慧 好奇心驱使我们探索 而智慧则是自由思想的结晶 引言 玄之又玄 众妙之门 今天真的是大开我的眼界 我之…

2024 cleanmymac有没有必要买呢,全反面分析

在使用mac时&#xff0c;小编遇到了运行内存不足、硬盘空间不足的情况。遇到这种情况&#xff0c;我们可以借助经典的电脑深度清理软件——CleanMyMac X&#xff0c;清理不常用的软件和系统垃圾&#xff0c;非常好用&#xff01;不过&#xff0c;有许多网友发现CleanMyMac X有免…

mvc 异步请求、异步连接、异步表单

》》》 利用Jquery ajax 》》》 mvc 异步表单 c# MVC 添加异步 jquery.unobtrusive-ajax.min.js 方法 具–>Nuget程序包管理器–>程序包管理器控制台 在控制台输入&#xff1a;PM>Install-Package Microsoft.jQuery.Unobtrusive.Ajax –version 3.0.0 回车执行即可在…

PM说|还有不会DISC的项目经理?

DISC行为模型是一种常用于职场中的人际交往工具&#xff0c;它通过对个体的行为特点进行分类和分析&#xff0c;帮助人们更好地理解自己和他人的行为方式&#xff0c;从而更加高效地进行沟通和合作。在项目管理过程中&#xff0c;多方沟通是必备工作技能&#xff0c;如何利用DI…

四级英语翻译随堂笔记

降维表达&#xff1a;中译英&#xff0c;英译英 没有强调主语&#xff0c;没有说明主语&#xff1a;用被动 但如果实在不行&#xff0c;再增添主语 不会就不翻译&#xff0c;不要乱翻译 以xxx为背景&#xff1a;against the backdrop of the xxx eg:against the backdrop of…