下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 线程 实验指导课实验目标: 掌握多线程的概念,学习如何编写基本线程程序。第一部分:指导(20分钟)练习1:此程序将创建两个线程。每个线程均输出“你好”,接着输出线程名及消息数字。每个线程均输出5次“你好”,可以查看这些消息是如何以交叉方式显示的。下面解释了代码中包括的语句。1, 定义线程的类OurRunnableClass 。此类将实现接口Runnable,意味着它可以当一个线程。其代码为: class OurRunnableClass implements Runnable2.定义线程的成员变量和构造函数。private String mName;private int mCoun
2、ter;public OurRunnableClass(String pName)mName=pName;mCounter=0;第一个成员变量用于存放线程的名称。请注意,这是一个由程序给定的逻辑名称,java虚拟机并不能通过此名称了解它,mCounter变量用于跟踪消息数,构造函数仅为成员变量mName初始化为参数的值,并将计数器初始化为0。3.实现Runnable接口所需的run()方法。任何时候启动线程,都首先执行此方法。此方法仅完成在控制台上将消息输出5次。其代码为:public void run() for(int cnt=0;cnt<5;cnt+)mCounter+;Syste
3、m.out.println("你好,来自"+mName+" "+mCounter);4.定义主类,以实例化线程。将这个类声明为public类型。public class RunnableApp 5.在类中定义main()方法。此方法将实例化两个线程。public static void main(String args) Runnable objOne=new OurRunnableClass("第一个线程");System.out.println("在启动第一个线程之前");Thread thOne=new Th
4、read(objOne);thOne.start();Runnable objTwo=new OurRunnableClass("第二个线程");System.out.println("在启动第二个线程之前");Thread thTwo=new Thread(objTwo);thTwo.start();下面是完整的程序:class OurRunnableClass implements Runnableprivate String mName;private int mCounter;public OurRunnableClass(String pNam
5、e)mName=pName;mCounter=0;public void run() for(int cnt=0;cnt<5;cnt+)mCounter+;System.out.println("你好,来自"+mName+" "+mCounter);public class RunnableApp public static void main(String args) Runnable objOne=new OurRunnableClass("第一个线程");System.out.println("在启动第一个线程之
6、前");Thread thOne=new Thread(objOne);thOne.start();Runnable objTwo=new OurRunnableClass("第二个线程");System.out.println("在启动第二个线程之前");Thread thTwo=new Thread(objTwo);thTwo.start();将文件以RunnableApp.java 文件名保存。在命令提示符处键入下列命令,以编译和执行文件。输出结果如下图所示:第二部分:练习(80分钟)1. 编写一个具有多线程功能的Applet。此Appl
7、et应该可以动态绘制随机生成、大小不同的矩形。提示:创建一个扩展Applet并实现Runnable接口的类。在init()方法中启动新线程。在paint()方法中生成随机数,作为参数传递给绘制矩形的方法。在run()方法中创建一个无限循环。从循环内部调用repaint(),以调用paint(),并在无限循环中然线程休眠一段时间,以达到在重画之前有一定时间的停顿。2. 编写一个创建三个线程对象的程序。每个线程应该输出一则消息,并在消息后进跟字符串“消息结束”。在线程输出消息后,应暂停一秒钟,然后才输出“消息结束”。首先应该有线程1输出消息,然后是线程2和线程3.提示:创建一个类Callme,其中
8、包含call方法。此方法输出消息后暂停1秒,然后输出“消息结束”。创建一个类Caller,这个类是一个线程类,要求继承Runnable接口,并实现run()方法。创建一个具有main()方法的类,此方法中将启动三个Caller线程。使用同步机制控制三个Caller线程对象分别调用Callme对象的call方法。3. 编写一个程序,用于显示线程通信。创建一个具有邮箱功能的类。这个类具有两个方法,分别用于发送和接受消息。创建一个用于生成消息的类Producer和一个用于检索这些消息的类Consumer。代码逻辑应为:在一个线程将放入邮箱时,另一个线程会对消息进行检索,然后显示在控制台上。提示:创建一个具有两个synchronized方法的类,这两个方法分别用于放入消息和检索消息。创建一个Producer类,用于将消息放入邮箱。创建一个Consumer,用于在标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年复旦大学经济学院招聘经济学院院务办公室行政秘书岗位1名备考题库及答案详解参考
- 长沙市食品药品检验所2025年公开招聘编外合同制人员备考题库及1套参考答案详解
- 2025年永州陆港枢纽投资发展集团有限公司公开招聘工作人员的备考题库及答案详解一套
- 2025年中冶天工集团西南公司招聘14人备考题库参考答案详解
- 2025年西安交通大学第一附属医院胸外科招聘派遣制助理医生备考题库及一套答案详解
- 2025年湖南省社会主义学院公开招聘高层次人才备考题库及答案详解一套
- 2025年新疆职业大学第二批高层次人才引进27人备考题库带答案详解
- 2025年合肥工业大学(合肥校区)专职辅导员、心理健康教育教师(辅导员岗位)招聘备考题库及一套完整答案详解
- 北京市房山区良乡中学2026年教师招聘备考题库完整参考答案详解
- 2025宁夏宁东绿科新能源有限公司人员招聘15名备考题库参考答案详解
- 2025年天津大学管理岗位集中招聘15人备考题库及完整答案详解1套
- 2026贵州安创数智科技有限公司社会公开招聘119人备考笔试题库及答案解析
- 《登泰山记》课件+2025-2026学年统编版高一语文必修上册
- 临床医学晕厥课件
- 2025国家移民管理局出入境管理信息技术研究所招聘笔试历年常考点试题专练附带答案详解2套试卷
- 2025年鸡西市恒山区煤炭生产安全管理局招聘合同制煤矿驻矿员20人笔试考试备考试题及答案解析
- 形势与政策(2025秋)超星学习通章节测试答案
- 2024年中国纪检监察学院招聘真题
- 色温-XY-UV色坐标换算公式
- 中医师承人员跟师工作月记表
- 口腔影像学-医学影像检查技术及正常图像
评论
0/150
提交评论