西南科技大学 刘涌 JAVA 实验六

时间:2024.4.20

面向对象程序设计A(Java)

实验报告

实验名称:  多线程实验        

实验类型:                     

指导教师:      刘涌         

专业班级:   信安1203        

    名:    黄学强       

   号:   20111899         

实验地点:    东六E301       

实验成绩:                    

             

                    日期: 20##年4月30日

实验六多线程实验

一、实验目的:

练习多线程类的两种实现方法,理解多线程程序的生命周期。

二、实验内容:

编写一多线程程序,实现如下功能:

(1)一个线程进行阶乘和的运算(1!+2!+3!+……+30!),每次阶乘计算时间随机间隔0.5-1秒;

(2)另一个线程每隔0.1秒时间读取上个线程的运算结果和计算进程,并在图形界面中实时显示结果。

三、实验要求

1正确设计显示运行结果和计算进程的图形用户界面;

2分别采用Thread类的子类和Runable接口两种方式完成两个线程的设计;

3进行全面的测试并分析测试结果;

四、实验设计

1、先用Java Application 方式建立应用程序框架。 其中选用frame on screen ;

2、实现界面设计。 其中用 xyLayout布局。

3、 用两种方法实现多线程

方法一、设计两个线程ComputeThread 和ReadThread线程分别继承Thread线程。

ComputeThread线程实现阶乘和运算,用for循环实现阶乘和运算。ReadThread线程实现在窗口显示结果和进程。

方法二、ComputeThread 和ReadThread线程分别接口Runnable。

 运算方法同上。

五、实验过程

1、按照设计的步骤实现。

     遇到的问题:Text只显示到6!

     解决方法:删除ReadThread的run()方法下while循环语句中的count++,因为ReadThread线程和ComputeThread线程不同步。

    2、  用setValue()方法显示进度条,setText()方法显示结果。

六、实验结果

讨论与分析

进行全面的测试并分析测试结果;

新建——Thread.State.NEW:当一个 Thread 类或者其子类的对象被声明并创建时,新的线程对象处于新建状态,此时它已经有了相应的内存空间和其他资源start方法尚未被调整用就绪可执行状态——Thread.State.RUNNABLE:处于新建状态的线程被启动后,将进入线程队列排队,这个时候具备了运行的条件,一旦轮到 CPU 的时候,就可以脱离创建它的主线程独立开始自己的生命周期运行:就绪的线程被调度进入运行状态,每一个 Thread 类及其子类的对象都有一个重要的run方法,当线程对象被调度执行的时候,它将自动调用本对象的 run方法,从第一句代码开始执行。

简要说明你在该实验中的收获与体会。                  

(1)首先:java 程序是建立在线程之上的。. 

(2)创建线程必须继承 Thread class 它已经为线程的创建和运行做了必要的配置。run是线程就重要的方法。你必须覆写这个方法达到你想要的目的。

(3)run方法所包含的代码就是和其他线程同时运行的代码以达到同一时刻运行多段代码的目的。当终止了 run以后。这个线程也就结束了。调用线程的 start方法才会执行 run方法。

体会:

通过实验设计了正确的显示运行结果和计算进程的图形用户界面;完成了对分别采用Thread类的子类和Runable接口两种方式完成两个线程的设计;并且进行全面的测试并分析测试结果;对Java的学习有了很大的提升作用。

附录:

代码

阶乘运算

for(n = 1 ; n <= 30 ; n++)

    {

      save = save * n ;  //进行阶乘

      sum = sum  + save ; //进行阶乘和运算

      str = "+" + n + "!" ;

      str1 = str1 +str ; //字符串相加

      try {

        Thread.sleep(500 + (int) (Math.random() * 500));//随机生成 05~1秒

      }

      catch (InterruptedException ex) {

      }

}

显示结果 和进度条

 while (true) {

      f.text.setText(ct.str1); //显示阶乘字符

      f.jd.setValue(ct.n); //显示进度条

      String s = String.valueOf(ct.sum);

      f.text1.setText(s); //显示结果

      try {

        Thread.sleep(100); //休眠100毫秒

      }

      catch (InterruptedException ex) {

      }

    }

单击开始按钮

void jButton1_actionPerformed(ActionEvent e) {

    ComputeThread ct = new ComputeThread();

    ReadThread rt = new ReadThread(ct , this);

     //ct.start();  继承Thread类则:

     //rt.start();

    new Thread(ct).start();//接口Runnableze:

    new Thread(rt).start();

  }


第二篇:西南科技大学 计算机实验报告


西南科技大学计算机实验报告

西南科技大学计算机实验报告

西南科技大学计算机实验报告

西南科技大学计算机实验报告

更多相关推荐:
大学化学实验课程总结

新大学化学实验课程总结化学是研究物质的组成、结构、性质、以及变化规律的一门以实验为基础的自然科学。化学实验是化学理论产生的基础,是检验化学理论正确与否的唯一标准,同时也是化学学科促进生产力发展的根本。因此是化学…

大学化学分析实验课后总结

酸式滴定管一定不能装碱溶液。W:为什么量取HCl不需要用移液管,只需用量筒?A:精度不要求那么高,只需量筒即可。电子天平精度:0.1mg台秤精度:0.1g酸碱指示剂酚酞:PH=8~10甲基橙PH=3.1~4.4…

大学化学实验报告格式

大学化学实验报告班级学号姓名资环学院实验报告一实验名称二实验目的三实验原理四实验内容五实验结果及问题讨论

大连理工大学基础化学实验中心年终总结

大连理工大学基础化学实验中心年终总结,内容附图。

大 学 化 学 实 验 报 告

大学化学实验报告综合性实验学院班级学号姓名扬州大学化学实验教学中心20xx年9月综合性实验报告班级姓名组别实验名称实验日期实验目的实验原理或反应式产物表征及产率计算实验讨论

大学物理化学实验思考题答案总结

蔗糖水解速率常数的测定1蔗糖水解反应速率常数和哪些因素有关答主要和温度反应物浓度和作为催化剂的H浓度有关2在测量蔗糖转化速率常数时选用长的旋光管好还是短的旋光管好答选用长的旋光管好旋光度和旋光管长度呈正比对于旋...

大学化学实验报告模板

物理化学实验报告院系班级学号姓名实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成绩实验名称姓名日期成...

中国石油大学(华东)油田化学实验报告 实验四

实验四钻井液中固相含量的测定一实验目的1掌握固相含量测定仪的操作方法2学会钻井液中固相含量的计算方法二实验原理根据蒸馏原理取一定量钻井液用电热器将其蒸干收集并测出冷凝液的体积用减差法即可求出钻井液中固相含量也可...

中国石油大学(华东)油田化学实验报告 实验九

实验九絮凝剂在污水处理中的应用一实验目的1观察絮凝剂即混凝剂与助凝剂净化水的现象了解絮凝剂在污水处理中的作用机理和使用性质2掌握一种寻找絮凝剂最适宜质量浓度的方法二实验原理水的净化可使用各种絮凝剂在絮凝剂中能使...

浙江大学化工原理(过程工程与控制乙)实验报告 传热综合实验

实验报告课程名称:过程工程原理实验(乙)指导老师:成绩:__________________实验名称:传热综合实验实验类型:工程实验同组学生姓名:一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器…

福州大学实验室危险化学品安全检查报告

福州大学实验室危险化学品专项安全检查报告为了认真贯彻教育部办公厅关于进一步加强高等学校实验室危险化学品安全管理工作的通知教技厅20xx1号的有关精神进一步强化学校安全主体责任保证广大师生的身体健康和生命安全做到...

浙江大学化学实验报告模板

实验报告课程名称指导老师成绩实验名称实验类型同组学生姓名一实验目的和要求必填三主要仪器设备必填五实验数据记录和处理七讨论心得一实验目的和要求二实验内容和原理三主要仪器设备二实验内容和原理必填四操作方法和实验步骤...

大学化学实验总结(33篇)