JAVA实验7-多线程编程-报告

发布时间:2019-04-12 15:02:37   来源:文档文库   
字号:

Java语言程序设计实验报告

学院:

班级:

姓名:

学号:

成绩:

1、实习目标

(1) 掌握 Java 多线程的概念和实现

(2) 掌握使用继承 Thread 产生线程

(3) 实现 Runnable 接口产生线程

(4) 掌握 wait-notify 机制

2、实验过程

任务一:多线程输出字符串(继承 Thread 类)

创建两个独立的线程,一个线程打印 20 次“A”,另一个线程打

20 次“B”,输出结果类似于:

ABBABAABBA.

/* 两个独立线程,分别输出 A B */

要求:使用继承 Thread 类的方式实现线程对象

代码截图:

PrintA类:

PrintB类:

PrintTest类:

运行结果:

任务二:多个线程共同执行目标对象的任务(实现 Runnable

有一批零件(Part)的生产任务,总量是 800 个,生产一个零

件耗时 10ms。有 4 个车间(Workshop)共同完成这一批任务。

(选做)分别统计每个车间各自生产了多少个零件并输出。

代码截图:

Part类:

WorkShop类:

运行结果:

此处“workshop * 生产零件 * 个”的意思是该线程执行了第 * 次,而不是说该线程共执行了 * 次。

最后四行指出了每条线程执行命令的总数。

值得注意的是,同样的程序,在机房运行,与在我自己的电脑上运行,结果各个线程交替执行的情况差别很大,这也许与CPU的型号有关。

机房是 Intel i7-4790 48线程

我的是AMD R5-1600X 612线程

任务三:生产者-消费者问题(线程间通信)

有一种商品 Product 类,一个货架类(GoodsShelf:拥有

一个容量为 size(可根据需要设定大小)的 Product 数组。生产

者(Producer)往货架上放置商品,消费者(Consumer)从货

架上消费商品。二者是并发执行的。(货架空的时候只能生产,货架

满的时候只能消费。)使用多线程并发机制和线程间通信,模拟商品

编号从 1 100 的生产和消费过程。

要求:

(必做)只模拟一个生产者和一个消费者的情况;

(选作)模拟 2 个生产者和 3 个消费者的情况,生产商品的时间和

消费商品的时间可以调整 Thread.sleep(整型值)

代码截图:

Consumer类:

Producer类:

Product类:

GoodsShelf类:

JustFuckingBuyIt类:

运行结果:

代码解释见代码中的注释。

本文来源:https://www.2haoxitong.net/k/doc/8c34eb50cf2f0066f5335a8102d276a2002960ee.html

《JAVA实验7-多线程编程-报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式