实验06 线程应用及线程并发库Word格式.docx
- 文档编号:22083014
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:611.26KB
实验06 线程应用及线程并发库Word格式.docx
《实验06 线程应用及线程并发库Word格式.docx》由会员分享,可在线阅读,更多相关《实验06 线程应用及线程并发库Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
(2)掌握Semaphore、ReadWriteLock与Condition、Exchanger、BlockingQueue、CyclicBarrier、CountdownLatch等的用法;
(3)掌握线程池相关接口及类的用法。
2.实验内容
实验题1编写一程序,实现如下功能:
子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,主线程循环100次,如此循环50次。
实验结果:
代码:
Circle类
ImplementCircle类;
实验题2设计4个线程,其中2个线程每次对count增加1,另外两个线程每次对count减1。
执行结果:
实验题3CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点。
在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时CyclicBarrier很有用。
因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。
题目要求:
(1)要在公司大厅集合、然后参观陈云故居;
(2)参观完后集合、准备去淀水湖参观(有3辆车、对应3个线程);
说明:
必须等大家都到齐了才能去下个地方、比如说在公司集合、3辆车子都到了才能出发等。
要求:
用java线程并发库的CyclicBarrier类模拟上述参观过程。
CyclicBarrierTest1类:
CyclicBarrierTest2类:
实验题4某图书馆邀请一著名作家签名售书,大家去买书,具体情况如下:
(1)买书的读者很多必须排队,作家签好名的书不多(但是他还会看书的销售的情况,一般满了10本(假设)就不会再签了);
(2)有的书还没有签名,这样排在前面的同学就可以买到书、排在后面的就必须等有了签过名的书才能买;
(3)已经签好名的书可以放在ArrayBlockingQueue中,签好名的书不断的向这个队列里放,而买书的读者不断的从里面取书,如没有签名的书,就必须等,书有10本了,作家就停下来休息。
买书的每个读者都可以看作一个线程、作家签名也可以看作是一个线程;
(4)排在前面的读者先买。
编写程序,模拟上述过程。
实验题5模拟拥有一定数量账户的银行,把随机产生的钱在不同账号之间进行转移交易。
每个账号都有一个线程,在每笔交易中,都会从线程所服务的账户中随机取出一定数额的钱转移到另一个随机账户中。
提示:
设计一个Bank类,它有一个transfer方法,该方法将一定数额的钱从一个账户转移到另一个账户,如源账户没有足够余额,该方法直接返回。
Bank类:
TransferRunnable类:
UnsynchBankTest类:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验06 线程应用及线程并发库 实验 06 线程 应用 并发