- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六多线程课案
桂 林 电 子 科 技 大 学
《Java应用开发》 实 验 报 告
指导教师意见:
成绩 实验名称 多线程
计算机科学与工程学院计算机科学与技术专 业
班 第 实 验 小 组
姓 名 学 号
实 验 日 期 2015 年 11 月 14 日
实验六 多线程
实验目的
1、掌握线程和多线程的概念。
2、掌握创建线程的两种方法及其区别。
3、了解线程的启动、终止、同步、互斥和优先级等概念。
实验内容
1、编写一个程序,其功能是运行之后,其中有一个线程可以输出20次你的学号,另一个线程会输出20次你的姓名。
2、编写一个图形界面程序,运行之后,让其中有一个线程能在界面上“实时”显示系统当前时间(精确到秒获取时间可查询java.util.Calendar类,它包含了多个用于获得系统时间的函数)。另让一个线程可以在界面上提示当前系统时间下用户该做什么工作(例如当程序判断出系统时间现在是8:00到9:00,则提示用户该上课;现在是23:00到8:00,则提示用户该休息。 具体测试时可以将时间段限制到秒级,以便及时查看到程序运行中提示信息的变化)。
分析与设计
1. Thread t1 = new Thread(new Number(), 学号:); // 创建线程1的对象,并通过第二个参数将其命名为学号
Thread t2 = new Thread(new Name(), 姓名:); // 创建线程2的对象,并通过第二个参数将其命名为姓名
下代码来实现第一个第二个输出名字的线程代码类似。class Number implements Runnable
{
public void run() {
for (int i = 1; i = 20; i++) {
System.out.println(第 + i + 次执行线程:
+ Thread.currentThread().getName() + 1300310327);
s6_1.j1.append(第 + i + 次执行线程\n
+ Thread.currentThread().getName() + 1300310327\n);
Thread.yield(); // 暂停当前正在执行的线程对象,并执行其他线程
}
}
}
2. 一下代码或得系统时间
int y,m,d,h,mi,s;
Calendar cal=Calendar.getInstance();
y=cal.get(Calendar.YEAR);
m=cal.get(Calendar.MONTH)+1;
d=cal.get(Calendar.DATE);
h=cal.get(Calendar.HOUR_OF_DAY);
mi=cal.get(Calendar.MINUTE);
s=cal.get(Calendar.SECOND);
if else语句来输出当前时间和
多线程的运行结果:
显示时间和事件:
事件会随着时间的变化实时的显示在第二个线程哪里
问题与总结
创建线程有两种方法,一是声明一个类的同时实现Runnable接口,这个类必须实现一个没有参数的run方法,run方法中的代码即线程所要做的事情。
一般操作系统中的多线程指的是在操作系统中同时运行几个应用程序,每个应用程序占用一个进程。实际上这些程序在单处理器的系统中并不是同时运行,而是操作系统将系统资源分配给各个程序,每个程序在CPU中交替执行,由于CPU的速度比较快,我们就感觉不出各程序是交替执行,而感觉多个程序是同时运行的。
for(int i=0;;i++)
Calendar cal=Calendar.getInstance(); // 获得当前时间
int s=cal.get(Calendar.SECOND);
if else 当前时间应该执行什么事件
附录
package sy6;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class s6_1 extends JFrame
{
JFrame jf = new JFrame(学号姓名);
static JTextArea j1, j2;
Thread t1 = new Thread(new Number(), 学号:); // 创建线程1的对象,并通过第二个参数将其
您可能关注的文档
- 实验一数据库和表的操作.doc
- 实验1门电路的功能测试.doc
- 实验一数据类型和表达式.doc
- 实验一数据库及表的操作.docx
- 实验一报告-杨先宇.doc
- 实验UML知识回顾回顾.doc
- 实验一电力系统计算机潮流计算.docx
- 实验一《SQLServer2012环境》.docx
- 实验一常用电子测量仪器使用.doc
- 实验一计量经济学实验报告.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)