收藏 分享(赏)

JAVA 线程例题.doc

上传人:gnk289057 文档编号:6102993 上传时间:2019-03-27 格式:DOC 页数:11 大小:188.50KB
下载 相关 举报
JAVA 线程例题.doc_第1页
第1页 / 共11页
JAVA 线程例题.doc_第2页
第2页 / 共11页
JAVA 线程例题.doc_第3页
第3页 / 共11页
JAVA 线程例题.doc_第4页
第4页 / 共11页
JAVA 线程例题.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、福建信息职业技术学院软件工程系实验报告2011 2012 学年第 1 学期 任课老师: 余先锋 课程名称 Java 程序设计 班级 控制 1011 座号 31 姓名 吴杏龙实验名称 实验十三: 多线程应用 实验时间 第 16 周星期 1 第 节实验目的掌握多线程的基本概念和设计方法,学会分别使用 Thread 类和 Runnable 接口实现多线程程序的设计方法。实验环境PC/windows2000/2003/XP/ Eclipse/ Jcreator Pro。 实验内容安排必做题:【实验 13-1】使用继承 Thread 类方法设计多线程程序,线程 AThread 计算并输出 1-1000

2、之内的素数;线程 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(

3、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

4、() /输出 1-1000 之内素数boolean prime(int n) /判断 n 是否为素数的方法 /返回逻辑值class DThread /生成随机数的线程 public void run() /生成并输出随机数public class Experiment13_2 public static void main(String args) Thread c = ; /创建素数线程对象 cThread d = ; /创建随机数线程对象 d; /启动线程 c; /启动线程 d选做题:【实验 13-3】修改【实验 13-1】或【实验 13-2】程序,要求在同一个线程类中能够分别实现素数的判

5、定和随机数生成显示两个线程。程序保存为 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 (“随

6、机数 “);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(); /启动素数线

7、程 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 impl

8、ements Runnable 重写 Runnable 接口的 run()方法:void run()在主程序中创建线程类的对象:Thread t = new Thread(new ThreadClass ();启动线程:t.start();实验过程记录(学生写出实验步骤及中间的结果与现象,在实验中做了什么,怎么做,发生的现象和中间结果)实验结果分析与总结1、程序运行结果或结果截图:实验 1:实验二:实验三:2、你在实验过程中遇到的问题与解决方法:3、实验过程中的发现与收获,未解决或需进一步解决的问题:作业与问题(答题内容请用蓝色字体)1、 程序、进程、线程之间是什么关系?程序是代码的集合,进程

9、是程序的一次执行,线程是进程的组成单位。2、 创建线程类的方法有那些?创建线程有两种方法:继承 Thread 类和实现 Runnable 接口3、 线程如何启动?如何终止?启动线程的时候用一个判断语句锁定整个 run()方法就可以4、 线程的等待和挂起有什么区别?进程在外存中,并且等待某件事情发生 。指导老师评阅意见指导老师: 年 月 日填写内容时,可把表格扩大。附:实验源程序代码实验一:public class E13 public static void main(String args) AThread a=new AThread(“线程 a“);BThread b=new BThrea

10、d(“线程 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();f

11、or(int i=2;i=1000;i+)boolean sushu=true;int j=2;while(j=i/2)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 Runna

12、blepublic 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)j+;if(sushu)System.out.println(Thread.currentThread().getName()+“输出素数:“+

13、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)j+;if(sushu)System.out.println(j+“ “);else if(name.equals(“随机数“)for(int i=0;i200;i+)System.out.println(Math.random()+“

14、“);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

15、Thread(this);a.setName(“素数线程 “);b=new Thread(this);b.setName(“随机数线程“);public void run() if(Thread.currentThread()=a)for(int i=2;i=1000;i+)boolean sushu=true;int j=2;while(j=i/2)j+;if(sushu)System.out.println(j+“ “);else if(Thread.currentThread()=b)for(int i=0;i200;i+)System.out.print(Math.random()+“ “);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报