JAVA 线程例题.doc_第1页
JAVA 线程例题.doc_第2页
JAVA 线程例题.doc_第3页
JAVA 线程例题.doc_第4页
JAVA 线程例题.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

福建信息职业技术学院软件工程系实验报告2011 2012 学年第 1 学期 任课老师: 余先锋 课程名称Java程序设计班级控制1011座号31姓名吴杏龙实验名称实验十三: 多线程应用实验时间第 16 周星期 1 第 节实验目的掌握多线程的基本概念和设计方法,学会分别使用Thread类和Runnable接口实现多线程程序的设计方法。实验环境PC/windows2000/2003/XP/ Eclipse/ Jcreator Pro。实验内容安排必做题:【实验13-1】使用继承Thread类方法设计多线程程序,线程AThread计算并输出1-1000之内的素数;线程BThread输出200个随机数。程序保存为 Experiment13_1.java。主要程序代码提示:class AThread /计算素数的线程AThread(String s) super(s); /调用超类的构造方法public void run() String name = this.getName();/获取线程名for (int i = 2; i = 1000; i+)if(prime(i) /是素数,显示System.out.println(name + 输出素数: + i);/为看清运行结果,可在此处做适当延时boolean prime(int n) /判断n是否为素数的方法/返回逻辑值class AThread /生成随机数的线程public class Experiment11_1 public static void main(String args) AThread a = ;/创建素数线程对象aBThread b = ;/创建随机数线程对象b ;/启动线程a ; /启动线程b【实验13-2】同上题,要求使用实现Runnable接口方法设计多线程程序。程序保存为 Experiment13_2.java。主要程序代码提示:class CThread /计算素数的线程public void run() /输出1-1000之内素数boolean prime(int n) /判断n是否为素数的方法/返回逻辑值class DThread /生成随机数的线程public void run() /生成并输出随机数public class Experiment13_2public static void main(String args) Thread c = ;/创建素数线程对象cThread d = ;/创建随机数线程对象d ;/启动线程c ; /启动线程d选做题:【实验13-3】修改【实验13-1】或【实验13-2】程序,要求在同一个线程类中能够分别实现素数的判定和随机数生成显示两个线程。程序保存为 Experiment13_3.java。主要程序代码提示:方法1:线程类继承自Thread:class ThreadA extends Thread ThreadA (String s) super(s); public void run() String name = ;/获取线程名if(name. )/如果是素数线程/输出显示素数else if(name. )/如果是随机数线程/输出显示随机数主程序创建线程对象并启动线程:ThreadA a = new ThreadA (素数);ThreadA b = new ThreadA (随机数);b.start();a.start();方法2:线程类实现Runable接口:class ThreadB implements Runnable Thread a, b;ThreadB ()a = ;a.setName(素数线程);b = ;b.setName(随机数线程);public void run() if( = a)/如果当前是素数线程/输出显示素数else if( = b) /如果当前为随机数线程/输出显示随机数主程序创建线程对象并启动线程:ThreadB t = new ThreadB();/创建线程类对象t.a.start();/启动素数线程at.b.start();/启动随机数线程b实验要点:完成本实验时,注意以下几个问题:1、 创建线程类有继承Thread类和使用Runnable接口两种方法。2、 创建并应用继承自Thread的线程类,方法步骤是:创建线程类:class MyThread extends Thread重写Thread类的run()方法:void run()在主程序中创建线程类的对象:MyTread t = new MyTread ();启动线程:t.start();3、 创建并应用使用Runnable接口线程类,方法步骤是:创建线程类:class ThreadClass implements Runnable 重写Runnable接口的run()方法:void run()在主程序中创建线程类的对象:Thread t = new Thread(new ThreadClass ();启动线程:t.start();实验过程记录(学生写出实验步骤及中间的结果与现象,在实验中做了什么,怎么做,发生的现象和中间结果)实验结果分析与总结1、程序运行结果或结果截图:实验1: 实验二:实验三:2、你在实验过程中遇到的问题与解决方法:3、实验过程中的发现与收获,未解决或需进一步解决的问题:作业与问题(答题内容请用蓝色字体)1、 程序、进程、线程之间是什么关系?程序是代码的集合,进程是程序的一次执行,线程是进程的组成单位。2、 创建线程类的方法有那些?创建线程有两种方法:继承Thread类和实现Runnable接口3、 线程如何启动?如何终止?启动线程的时候用一个判断语句锁定整个run()方法就可以4、 线程的等待和挂起有什么区别?进程在外存中,并且等待某件事情发生 。指导老师评阅意见指导老师: 年 月 日填写内容时,可把表格扩大。附:实验源程序代码实验一:public class E13 public static void main(String args) AThread a=new AThread(线程a);BThread b=new BThread(线程b); a.start(); b.start();class BThread extends ThreadBThread(String s) super(s);public void run()String name = this.getName();for(int i=0;i200;i+)System.out.println(name+输出随机数:+Math.random(); class AThread extends ThreadAThread(String s) super(s);public void run()String name = this.getName();for(int i=2;i=1000;i+)boolean sushu=true;int j=2;while(j=i/2)&sushu)if(i%j=0)sushu=false;j+;if(sushu)System.out.println(name+输出素数:+j);实验二:public class E13 public static void main(String args) Thread c=new Thread(new CThread(),线程c);Thread d=new Thread(new DThread(),线程d);c.start();d.start(); class DThread implements Runnablepublic void run() for(int i=0;i200;i+)System.out.println(Thread.currentThread().getName()+输出随机数:+Math.random(); class CThread implements Runnablepublic void run() for(int i=2;i=1000;i+)boolean sushu=true;int j=2;while(j=i/2)&sushu)if(i%j=0)sushu=false;j+;if(sushu)System.out.println(Thread.currentThread().getName()+输出素数:+j);实验三:class ThreadA extends ThreadThreadA(String s)super(s);public void run()String name=getName();if(name.equals(素数)for(int i=2;i=1000;i+)boolean sushu=true;int j=2;while(j=i/2)&sushu)if(i%j=0)sushu=false;j+;if(sushu)System.out.println(j+ );else if(name.equals(随机数)for(int i=0;i200;i+)System.out.println(Math.random()+ );public class E13 public static void main(String args)ThreadA a = new ThreadA (素数);ThreadA b = new ThreadA (随机数);b.start();a.start();public class E13public static void main(String args)ThreadB t = new ThreadB();t.a.start();t.b.start(); class ThreadB implements RunnableThread a,b;ThreadB()a=new Thread(this);a.setName(素数线程);b=new Thread(this);b.setName(随机数线程);public void run() if(Thread.current

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论