news 2026/6/23 11:12:41

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/6/22 16:35:23

51、Linux 系统中 shell 环境管理与脚本编写全解析

Linux 系统中 shell 环境管理与脚本编写全解析 在 Linux 系统的使用过程中,对 shell 环境进行有效管理以及编写实用的 shell 脚本,能够极大地提升工作效率,让操作更加便捷和自动化。下面将详细介绍 shell 环境管理的相关内容,包括永久修改 shell 提示符、使用命令别名、修改…

作者头像 李华
网站建设 2026/6/23 7:44:16

53、编写高效 Shell 脚本:从基础到实践

编写高效 Shell 脚本:从基础到实践 1. 使用 case 语句处理用户输入 在脚本编写中, case 语句是处理多变量值的强大工具。例如,在修改后的 mkuser.sh 脚本中,用户可以输入要创建的用户名,或者输入 Exit 来退出脚本。 case 语句会检查输入是否为 Exit ,如果是…

作者头像 李华
网站建设 2026/6/23 3:44:25

解锁共享单车数据:从入门到精通的完整分析指南

还在为找不到合适的交通数据分析项目而烦恼吗&#xff1f;想要通过真实案例提升数据技能&#xff1f;这个精心整理的共享单车数据集正是你需要的实践宝库&#xff01;&#x1f3af; 【免费下载链接】国内某共享单车数据集 这是一个专门为交通行业学生设计的国内共享单车数据集&…

作者头像 李华
网站建设 2026/6/23 13:16:48

KOOM:如何快速解决Android应用内存泄漏的终极方案

KOOM&#xff1a;如何快速解决Android应用内存泄漏的终极方案 【免费下载链接】KOOM KOOM is an OOM killer on mobile platform by Kwai. 项目地址: https://gitcode.com/gh_mirrors/ko/KOOM 在移动应用开发中&#xff0c;内存泄漏问题一直是困扰开发者的首要难题。当应…

作者头像 李华
网站建设 2026/6/22 14:28:49

API 测试- Postman Vs Rest Assured

介绍&#xff1a; 创新和现代化的目标已经从简单的市场差异化转变为更有道德地追求整个社会的进步。提出了新的要求服务器端软件是持续数字中断和创新移动的结果技术。因此&#xff0c;服务器端编程现在必须适应笔记本电脑&#xff0c;智能手机和硬件平台&#xff08;如 IoT&a…

作者头像 李华
网站建设 2026/6/23 1:16:03

如何在React Native应用中实现语音交互?

如何在React Native应用中实现语音交互&#xff1f; 【免费下载链接】voice :microphone: React Native Voice Recognition library for iOS and Android (Online and Offline Support) 项目地址: https://gitcode.com/gh_mirrors/voi/voice 想象一下&#xff0c;你正在…

作者头像 李华