java多线程实验报告
更新时间:2023-09-05 19:55:01 阅读量: 教育文库 文档下载
java多线程实验报告
Java实验程序设计实验报告
实验名称:多线程
一:实验目的
1、掌握线程和多线程的概念。
2、掌握创建线程的两种方法及其区别。
3、了解线程的启动、终止、同步、互斥和优先级等概念。
二:实验内容
1、编写一个程序,其功能是运行之后,其中有一个线程可以输出20次你的学号,另一个线程会输出20次你的姓名。
2、编写一个图形界面程序,运行之后,让其中有一个线程能在界面上“实时”显示系统当前时间(精确到秒获取时间可查询java.util.Calendar类,它包含了多个用于获得系统时间的函数)。另让一个线程可以在界面上提示当前系统时间下用户该做什么工作(例如当程序判断出系统时间现在是8:00到9:00,则提示用户该上课;现在是23:00到8:00,则提示用户该休息。 具体测试时可以将时间段限制到秒级,以便及时查看到程序运行中提示信息的变化)。 三:实验设计
四:实验测试及运行结果
实验一;20次输出姓名,学号实验二:一个界面的左边显示当时时间,显示的时间会随时间的改变而改变,右边显示某个时间段该干什么,比如该睡觉,该上课,该自习。
五:问题与总结
通过这次实验学会了怎么使用多线程。
六:附录
package shiyan6_1;
class MyThread implements Runnable {
public MyThread() {
java多线程实验报告
} // 构造函数的代码,根据需要来写 public void run() { } for (int i = 1; i <= 20; i++) { } System.out.println("第" + i + "次执行线程" + Thread.currentThread().getName()); try { Thread.currentThread().sleep(500);// 睡眠500ms } catch (InterruptedException e) { } public static void main(String args[]) { Thread t1 = new Thread(new MyThread(), "学号"); // 创建线程1的对象,并
// 通过第二个参数将其命名为thread 1 Thread t2 = new Thread(new MyThread(), "姓名"); // 创建线程2的对象,并
// 通过第二个参数将其命名为thread 2 t1.start(); // 启动两个线程运行
java多线程实验报告
t2.start(); // 虽然t2的启动表面上好像在后面,实际上两个线程的执行并无先后之分,
} }
实验二:
package shiyan6_2;
import java.awt.FlowLayout;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class MyThread {
public MyThread() // 构造函数,生成图形界面 JFrame jf = new JFrame("线程都往界面上显示内容的例子"); static JTextArea jta1, jta2; Thread trda = new thread1(); // 线程trda Thread trdb = new thread2(); // 线程trdb
java多线程实验报告
}
} // setBounds(100,100,500,200); jf.setLayout(new FlowLayout()); jta1 = new JTextArea(15, 30); jta2 = new JTextArea(15, 30); jf.add(jta1); jf.add(jta2); // 将2个组件添加到界面上 jf.setLocation(100, 150); jf.setVisible(true); jf.pack(); trda.start(); // 两个线程都启动 trdb.start(); public static void main(String args[]) { } MyThread frm = new MyThread();
class thread1 extends Thread // 线程类thread1
{
public void run() {
java多线程实验报告
while(true){ Calendar cal = Calendar.getInstance(); // 获取一个Calendar类的实例对象
y = cal.get(Calendar.YEAR); // 获取年份 m = cal.get(Calendar.MONTH)+1; // 获取月份,获取的月份是从0到11表示一到十二月
d = cal.get(Calendar.DATE); // 获取日期 h = cal.get(Calendar.HOUR_OF_DAY); // 获取小时 mi = cal.get(Calendar.MINUTE); // 获取分钟 s = cal.get(Calendar.SECOND); // 获取秒钟 String s1=Integer.toString(y); String s2=Integer.toString(m); String s3=Integer.toString(d); String s4=Integer.toString(h); String s5=Integer.toString(mi); String s6=Integer.toString(s); MyThread.jta1.setText(s1+"年"+s2+"月"+s3+"日"+s4+"时"+s5+"分"+s6+"秒");
} }}
java多线程实验报告
class thread2 extends Thread // 线程类thread2 {
public void run() { } Calendar cal = Calendar.getInstance(); int hour = cal.get(Calendar.HOUR_OF_DAY); // 获取小时 int minute = cal.get(Calendar.MINUTE); // 获取分钟 if (hour>23||hour<7){ MyThread.jta2.append(" 睡觉时间"); } else if(hour>7&&hour<17){ } else if(hour>17&&hour<23){ } MyThread.jta2.append(" 自习时间");} MyThread.jta2.append(" 上课时间");
正在阅读:
java多线程实验报告09-05
有趣的小学生活作文06-15
开学第一课新学期观后感5篇_2020秋季最新观后感_新学期作文03-26
小班数学长方形活动反思03-08
2014山西语文中考预测卷01-14
露天采矿工艺技术规程10-05
煤矿安全员培训考试试题11-17
项目管理案例分析试题及答案112-09
公务员面试套路及万能开头结尾总结05-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 线程
- 实验
- 报告
- java
- 值得您的期待——上海国际汽车零部件及汽车用品展览会
- 小学四年级英语期中考试质量分析
- 2014-2019年中国连接器行业发展前景分析及供需格局研究预测报告
- 2013-2018年中国有载调压变压器市场分析及发展趋势研究预测报告
- 基本公共卫生服务儿童保健知识试题及部分答案(2017)
- 中国现代文学三十年笔记整理版
- 最新冀教版小学一年级数学上册《探索乐园》教案(精品教学设计)
- 色差仪的原理 - 仪器信息网
- 项目总工(技术负责人)岗位责任制
- 数字信号处理 第六章 无限冲击响应数字滤波器设计(白底)
- 小学二年级下册数学听课记录-西师版数学二年级下册听课记录
- Linux性能监控、调优(CPU篇)
- 2018-2019学年高中物理第二章交变电流6变压器学案教科版选修3-2
- 岗位说明书 岗位职责 车队主管
- 复习教案 unit 7
- 《廉洁教育读本》教案
- 2016-2017学年广东省广州市黄埔区八年级(下)期末英语模拟试卷(解析版)
- 枯草芽孢杆菌的生防作用机制_董慧 (2)
- 《钢结构》网上在线测试05
- 行政商务文员(OK)