精品文档

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() {

// 构造函数的代码,根据需要来写

}

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(); // 启动两个线程运行

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 {

JFrame jf = new JFrame("线程都往界面上显示内容的例子");

static JTextArea jta1, jta2;

Thread trda = new thread1(); // 线程trda

Thread trdb = new thread2(); // 线程trdb

public MyThread() // 构造函数,生成图形界面

{

// 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() {

int y, m, d, h, mi, s;

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+"秒");

}}

}

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){

MyThread.jta2.append(" 上课时间");

}

else if(hour>17&&hour<23){

MyThread.jta2.append(" 自习时间");}

}

}

.

展开阅读全文

Java实验报告多线程_java多线程实验报告.doc相关推荐

  1. javaee实验报告心得_java,web实验报告心得.doc

    java,web实验报告心得 java,web实验报告心得 JavaWeb实验报告 实验一 开发环境配置及Servlet程序设计 一.实验目的 1.了解并熟悉编程环境.编程工具,包括Tomcat.My ...

  2. java实验一目的_Java第一次实验要求

    Java语言程序设计第一次实验要求 实验一 简单Java程序设计 一.实验目的 1. 熟悉Java开发及运行环境: 2. 掌握Java程序开发的基本步骤: 3. 了解Java程序开发中的常见错误及其解 ...

  3. java华南理工大学出版_Java程序设计实验实训教程

    实验1 Java入门 1.1 实验目的 1.2 知识要点与应用举例 1.3 实验内容 1.4 实验小结 实验2 Java编程基础 2.1 实验目的 2.2 知识要点与应用举例 2.3 实验内容 2.4 ...

  4. java线程代码实现_Java 多线程代码实现讲解

    作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程.那么如何提供给 Java 我们要线程执行的代码呢? ...

  5. java 锁旗标_Java多线程

    Java多线程 1. 多线程存在的意义 多线程最大的作用就是能够创建"灵活响应"的桌面程序,而编写多线程最大的困难就是不同线程之间共享资源的问题,要使这些资源不会同时被多个线程访问 ...

  6. java多线程_Java多线程

    java多线程 Multithreading in Java is a very important topic. I have written a lot about Threads in Java ...

  7. java上机实验报告(7)_Java上机实验报告

    Java上机实验报告 Java上机实验报告 1. 实验目的 1. 通过练习熟练掌握java语法 2. 通过做独立做项目养成好的编程习惯 3. 熟练掌握用java开发小型项目的流程 4. 认识结构,理解 ...

  8. java计算器实验报告前言_java计算器实验报告引言.doc

    java计算器实验报告引言 java计算器实验报告引言 java计算器实验报告 课程设计论文 设计题目: java计算器 学生姓名: 指导教师: 专业名称: 所在院系: 秦皇岛职业技术学院信息工程系 ...

  9. java实验指导书(实验四)答案_java程序设计实验指导书答案

    ? 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的.狗通常的时候和人 打招呼会通过"摇摇尾巴",在被抚摸感到舒服的时候,会"旺旺叫",而在受到惊吓情 ...

最新文章

  1. Java JSON、XML文件/字符串与Bean对象互转解析
  2. 单例模式:基于反射和反序列化破解单例模式的漏洞及其解决方法
  3. BZOJ 1008--[HNOI2008]越狱(容斥快速幂)
  4. VTK:可视化算法之DecimateFran
  5. java 泛型机制_java中的泛型机制
  6. 19年兰州大学计算机分数线,兰州大学2019年在广东省录取分数线
  7. c++ 返回string_JVM系列之:String.intern和stringTable
  8. python开发环境有哪些_python编程需要什么环境
  9. 最新深度学习文本分类模型汇总(github开源)
  10. 关于动态规划的一点学习感想
  11. USB设备仿真框架设计指南——10.用USB设备模拟器测试USB驱动程序
  12. Scala安装和开发环境配置教程
  13. python 风玫瑰图_【求助】风玫瑰图
  14. SEO优化与网站浏览量提升
  15. 男孩子不上学了学计算机要学历吗,十三岁男孩不上学,能学什么手艺?
  16. python中input()函数的返回是什么类型_inputbox函数返回值的类型是什么?
  17. [转贴]比《同居密友》更搞笑的【阿奴与唐玉】陶海风格
  18. 硬盘参数调整命令hdparm
  19. 文化苦旅 余秋雨著
  20. 用Java输出100内的质数和合数(包含100)

热门文章

  1. 随缘版学习笔记 - VMware+CentOS静态IP设置
  2. 大型室内游乐园一卡通二次消费系统
  3. wav格式怎么转变成mp3?
  4. python csv写入中文_python写入csv中文乱码问题,encoding='utf-8'无效还是乱码——吕江民·日常随笔...
  5. 2021年机修钳工(中级)考试试卷及机修钳工(中级)模拟考试题
  6. Win10远程桌面连接提示“需要网络级别身份验证”解决方法
  7. 泛游链FPCO白皮书
  8. Carbide 破解ARM编译器方法
  9. 3天破9亿!上万条评论解读《西虹市首富》是否值得一看
  10. d3服务器不稳定,d3服务器