java多线程实验报告java多线程实验报告
java多线程实验报告
计算机科学与技术学院实验报告(电子版)
课程: Java程序设计
篇二:java多线程实验报告及代码
一、实验内容
题目一
练习教材第325页-327页的7-1、7-2、7-3三个实验题,分析结果,并总结输出结果与分析结果的异同;
题目二
编写程序实现阶乘和的运算:一个线程进行阶乘和的运算,而另一个线程则每隔一段时间读取上一个线程的运算结果。
设计一个窗体,以进度条的形式显示计算线程的执行进程。
详细说明界面设计过程,并分析程序的执行结果;
二、实验过程 ...
java多线程
java多线程实验报告
计算机科学与技术学院实验报告(电子版)
课程: Java程序设计
篇二:java多线程实验报告及代码
一、实验内容
目一
练习教材第325页-327页的7-1、7-2、7-3三个实验题,
结果,并
输出结果与分析结果的异同;
题目二
编写程序实现阶乘和的运算:一个线程进行阶乘和的运算,而另一个线程则每隔一段时间读取上一个线程的运算结果。
设计一个窗体,以进度条的形式显示计算线程的执行进程。
详细说明界面设计过程,并分析程序的执行结果;
二、实验过程
1、将7-1、7-2、7-3的源代码写入,分析输出结果并总结输出结果与分析结果的异同;
2、一个线程进行阶乘和的运算(1~+2~+3~+……+100!),每次计算时间随机间隔1-10毫秒;另一个线程每隔10毫秒时间读取并显示上个线程的运算结果和计算进程。
三、实验结果
实验结果部分截图:
四、讨论与分析
题目一:
7-1
此程序共有两个线程,一个主线程,一个用户线程,主线程执行5次,而用户线程执行10次;
7-2 1、Timer t = new Timer(true);
一个计时器,Timer()后的参数代
是不是一个首部线程,若true:这个计时器是守护线程,这个计时器在main方法中被调用,那么也应该是主线程,所以这个计时器停止时,整个程序也就停止了;即对此程序而言只执行十二次(由t.schedule()决定);若为false,则主线程与计时器独立。
7-3
1、runners 是一个SelfishRunner类型的数组,这个数组里有两个元素;循环执行
题目二:
能实现一个线程进行阶乘和的运算(1~+2~+3~+……+100!),每次计算时间随机间隔1-10毫秒;另一个线程每隔10毫秒时间读取并显示上个线程的运算结果和计算进程。 但是在界面上显示结果时遇到问题,并且不知道问题出在哪里。
五、附录:关键代码
一个线程进行阶乘和的运算(1~+2~+3~+……+100!),每次计算时间随机间隔1-10毫秒;另一个线程每隔10毫秒时间读取
并显示上个线程的运算结果和计算进程。
package jiecheng;
public class jiec {
public static void main(String[] args) {
MyThread mt = new MyThread();
new Thread(mt).start();
while (mt.i = 100) {
try {
Thread.sleep(10);
}
catch (InterruptedException ex) {
}
System.out.println(mt.sum);
}
}
}
class MyThread
implements Runnable {
double sum = 0;
int i;
public void run() {
double factorial = 1;
for (i = 1; i = 100; i++) { factorial *= i;
sum += factorial;
int b = (int) (Math.random() * 10); try {
Thread.sleep(b);
}
catch (InterruptedException ex) { }
}
}
}
篇三:Java多线程实验报告
实验4:Java多线程
实验时间: 实验地点:
一、实验目的及要求
(1)了解线程的概念。
(2)学习简单的多线程编程。
二、实验设备环境及要求
三、实验任务
(1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。
(2)按要求编写一个Java Application程序,并编译、运行这个程序。
四、实验内容与步骤
1(输入下面的Java Application程序,运行该程序,并简要分析
程序的运行结果。 1: class SimpleThread extends Thread {
2:public SimpleThread(String str) {
3: super(str); //调用其父类的构造方法
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:} } public void run() { //重写run方法 for (int i = 0; i 10; i++)
{System.out.println(i + + getName()); //打印次数和线程的名
字 try { sleep((int)(Math.random() * 1000)); //线程睡眠,把控制
权交出去}catch (InterruptedException e) { } }
System.out.println(DONE! + getName()); //线程执行结束 }
1: public class TwoThreadsTest {
2:public static void main (String args[]) {
3: new SimpleThread(First).start();
4: //第一个线程的名字为First
5: new SimpleThread(Second).start();
6: //第二个线程的名字为Second
7:
8: }
}
2(编写程序,将上面多线程程序用Runnable接口来实现。
class SimpleThread implements Runnable{
public void run(){
for (int i = 0; i 10; i++){
System.out.println(i + + Thread.currentThread().getName()); try
{
Thread.sleep((int)(Math.random() * 1000));
//线程睡眠,把控制权交出去
}
catch (InterruptedException e) { }
}
System.out.println(DONE! +
Thread.currentThread().getName());//线程执行结束
}
}
public class Test {
public static void main (String args[]) {
/*Thread t1=new Thread(First);
//第一个线程的名字为First
Thread t2=new Thread(Second);
//第二个线程的名字为Second
t1.start();
t2.start();*/
new Thread(new SimpleThread(),First).start();
new Thread(new SimpleThread(),Second).start()
}
}
本文档为【java多线程实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。