



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验指导书实验七、线程编程一、实验目的1 理解线程的基本概念2 掌握Java中线程创建的基本方法3 掌握控制线程基本方法4 掌握Java中线程的同步与互斥的实现二、实验内容1 验证课堂练习的结果,下面是课堂练习的内容:(1) 编写一个程序,能够根据用户的输入的数值生成相应数目的线程,每个线程运行1秒后结束。(2) 编写一个程序,能够生成n个线程,每个线程每隔1秒打印自己的序号,当用户输入m后第m个线程结束。(3) 编写一个程序,能够生成n个线程,每个线程打印自己的序号后结束,但要求最终的打印的结果为n,n1,1。2 将第三题改写为能够按照任意顺序结束。3 编写一个程序(由若干个类组成),该程序能够生成3个线程,其中2个线程向一个队列中写入数据,每次写入1个字节,1个线程从队列中读出数据,一次2个字节。要求读写交替运行,并注意数据的同步,而且队列要借助数组实现。三、实验步骤1 运行Eclipse,在其中新建一个Java工程JavaNetwork;2 创建package lab.lab2,并在其中创建一个Java类FirstThread并运行查看结果,其代码如下:package lab.lab2;import java.io.*;public class FirstThread extends Threadpublic static void main(String args) int n;try n=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in).readLine();for (int i=0;in;i+)(new FirstThread().start(); catch (IOException e) e.printStackTrace();public void run()System.out.println(Thread started.);try Thread.sleep(1000); catch (InterruptedException e) e.printStackTrace();System.out.println(Thread ended.);3 在package lab.lab2中创建一个Java类SecondThread并运行查看结果,其代码如下:package lab.lab2;import java.io.*;public class SecondThread extends Threadprivate int id;private boolean flag=true;private static SecondThread t;private static int n=5;public SecondThread(int id)this.id=id;public void stopThread()flag=false;public boolean getThreadState()return flag;public static void main(String args) int m;t=new SecondThreadn;for (int i=0;in;i+)(ti=new SecondThread(i).start();while(testThreads()try m=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in).readLine();tm.stopThread(); catch (IOException e) e.printStackTrace();System.out.println(program ended.);public void run()System.out.println(Thread +id+ started.);while (flag)try Thread.sleep(1000); catch (InterruptedException e) e.printStackTrace();System.out.println(Thread +id+ ended.);private static boolean testThreads()boolean flag=false;for (int i=0;in;i+)flag|=ti.getThreadState();return flag;4 在package lab.lab2中创建一个Java类ThirdRunnable并运行查看结果,其代码如下:package lab.lab2;public class ThirdRunnable implements Runnableprivate int id;private static int stopid=-1;static int n=10;public ThirdRunnable(int id)this.id=id;public static void main(String args) for (int i=1;i=n;i+)new Thread(new ThirdRunnable(i).start();stopid=n;public void run()System.out.println(Thread +id+ started.);while (id!=stopid)Thread.yield();System.out.println(Thread +id+ ended.);stopid-;5 将ThirdRunnable类改写,使其能够按照任意顺序结束;6 实现实验内容中的第3题。(提示:该程序应该由四个类组成,一个控制类(main方法所在类),实现线程的创建与启动;两个线程类,分别实现读数据与写数据;一个环形队列类,用于数据的存取。另外还应注意将synchronized关键字和wait/notify机制结合起来运用。)四、课后练习1 编写一个多线程程序,该程序主要完成以下工作:(1)生成两个发送线程s1,s2和一个接收线程r;(2)接收线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车考试题库大全及答案
- 单位内部考试题库及答案
- 风湿免疫学试题库及答案
- 2025年初级大数据分析师认证模拟题
- 2025健康管理师考试题型及答题技巧分享
- 2025年注册验船师资格考试(B级练习题)自测试题及答案一
- 2025年篮球裁判员素养考核试卷及答案
- 2025年工厂厂区安全保卫员招聘考试模拟题集及答案
- 2025年市场营销经理面试宝典市场策略与团队管理模拟题集
- 2025年交通运输管理局工作人员考试题目公开
- 人教版数学四年级上册教材课后习题参考答案(全)
- 人力资源员工旅游活动方案
- 日照市东港区禹海红旗海水鱼工厂化循环水养殖与良种繁育示范项目海域使用论证报告书
- 外贸报价单英文模板excel报价单表格模板
- 夜间专项施工专项方案
- 糖尿病足病历讨论
- GB/T 20028-2005硫化橡胶或热塑性橡胶应用阿累尼乌斯图推算寿命和最高使用温度
- GB/T 13008-2010混流泵、轴流泵技术条件
- GA/T 1499-2018卷帘门安全性要求
- 丁往道英语写作手册课件
- 气道评估与处理课件
评论
0/150
提交评论