news 2026/5/11 5:01:08

Java 基于多线程机制的专项实验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 基于多线程机制的专项实验

2.1 验证性实验

1、利用两种方式实现多线程:

(1) 第一种方式:继承Thread类

(2) 第二种方式:继承 java.lang.Runnable 接口

第一种方式:

public class Test1 {
public static void main(String[] args) throws InterruptedException { // 132
System.out.println("----------main.....start....1");
// 3. 创建线程对象
MyThread t = new MyThread();
// 4. 启动线程:start -> run方法
t.start();
t.join(); // 主线程让步于 t线程(主线程让t线程加入到自己的执行队列)
for(int i=1;i<=20;i++){
System.out.println("+++++++++++主线程========4===="+i);
}
System.out.println("----------main.....end....2");
}
}
// 代码实现多线程的第一种方式
// 1. 定义一个类继承 Thread类 --》线程类
class MyThread extends Thread{
// 2. 覆盖run方法 -> 定义线程的任务
public void run(){
for(int i=1;i<=20;i++){
System.out.println("=======t线程===33===="+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

第二种方式:

public class Test2 {
public static void main(String[] args) throws InterruptedException {
System.out.println("------main....start....");
// 3. 创建 目标对象
MyTarget tg = new MyTarget();
// 4. 创建线程对象
Thread t2 = new Thread(tg);
// 5. 开启线程:start --> run方法
t2.start();
for(int i=1;i<=20;i++){
System.out.println("***********主线程*************"+i);
Thread.sleep(500);
}
System.out.println("------main....end....");
}
}
// 代码实现多线程的第二种方式:
// 1. 定义一个类实现 Java.lang.Runnable接口 -》目标类
class MyTarget implements Runnable{
// 2. 覆盖 run方法 -》定义线程的任务
public void run(){
for(int i=1;i<=20;i++){
System.out.println("-----------t2线程--------"+i);
try {
Thread.sleep(500); //让当前线程休眠500ms(毫秒)
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

2、验证线程同步:

定义一个MyList类,封装String类型数组,数组长度为5,初始存储数据为“A”、“B”,同时定义一个变量index记录数组中元素的个数;创建一个MyList对象list,要求一个线程往list添加“C”,另一个线程往list添加“D”,最后遍历list,打印添加结果。

2.2 自主设计性实验

3、创建两个线程,要求如下:

(1) 通过继承 Thread 类定义线程实现输出 1~26;

(2) 通过实现 Runnable 接口定义线程实现输出A-Z。

4、假设一个银行的 ATM 机,它允许用户存款也可以取款。现在一个账户(Account)上存款为 200元,用户 A 和用户 B 都拥有这个账户存款和取款的权利。用户 A 存入 100 元,而用户 B 将取出 50 元,则最终账户的存款应为 250 元。

请编写线程代码模拟以上过程,要求如下:

(1) 定义一个 Account 类,属性为账户名(userName)和余额(balance),类进行封装;

(2) 线程 ThreadA 负责存钱操作;线程 ThreadB 负责取钱操作;

(3) main 函数中负责开启两个线程,并将存取操作结束后的账户余额进行打印输出

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 15:20:52

52、深入探索Shell脚本编程:变量、条件表达式与脚本优化

深入探索Shell脚本编程:变量、条件表达式与脚本优化 在Shell脚本编程中,我们常常需要执行各种任务,如数据处理、用户账户管理等。为了让脚本更加灵活和强大,我们需要掌握变量的使用、条件表达式的应用等关键技术。下面将详细介绍这些内容。 1. exec命令与脚本执行 exec命…

作者头像 李华
网站建设 2026/5/1 17:01:45

JMeter+Python 实现异步接口测试

部署运行你感兴趣的模型镜像一键部署 当使用JMeter和Python来实现异步接口测试时&#xff0c;可以按照以下步骤进行操作&#xff1a; 1、安装JMeter和Java Development Kit&#xff08;JDK&#xff09;&#xff1a; 下载并安装JMeter&#xff08;https://jmeter.apache.org/…

作者头像 李华
网站建设 2026/4/26 12:54:34

遇到bug怎么分析,这篇文章值得一看】

为什么定位问题如此重要&#xff1f; 可以明确一个问题是不是真的“bug” 很多时候&#xff0c;我们找到了问题的原因&#xff0c;结果发现这根本不是bug。原因明确&#xff0c;误报就会降低 多个系统交互&#xff0c;可以明确指出是哪个系统的缺陷&#xff0c;防止“踢皮球…

作者头像 李华
网站建设 2026/5/5 6:23:20

5分钟掌握PowerPoint VBA随机抽取:打造高效互动演示神器

5分钟掌握PowerPoint VBA随机抽取&#xff1a;打造高效互动演示神器 【免费下载链接】PowerPointVBA编程实现滚动随机抽取指定抽取 这款基于PowerPoint和VBA编程的小程序&#xff0c;旨在为演示或教学场景提供高效、有趣的互动方式。用户可自定义抽取内容&#xff0c;包括文字、…

作者头像 李华
网站建设 2026/4/28 19:55:17

还在为用户认证烦恼?试试Casdoor,一键部署,接管一切。

别再手写登录注册了&#xff01;这个开源IAM神器&#xff0c;3分钟搞定所有应用的统一认证“用户模块”——这四个字可能是每个后端开发者的噩梦。每个新项目&#xff0c;都要重复一遍注册、登录、密码找回、第三方登录……不仅繁琐&#xff0c;而且极易出现安全漏洞。当公司内…

作者头像 李华
网站建设 2026/4/27 17:59:52

Spark Store deb打包终极指南:从入门到精通

Spark Store deb打包终极指南&#xff1a;从入门到精通 【免费下载链接】星火应用商店Spark-Store 星火应用商店是国内知名的linux应用分发平台&#xff0c;为中国linux桌面生态贡献力量 项目地址: https://gitcode.com/spark-store-project/spark-store 还在为Linux应用…

作者头像 李华