稀土 2017-12-02
Thread.sleep
进行休眠?Runnable
接口,显示每个启动线程中的小球位置,通过component.repaint()方法实现小球的移动;调用Thread.sleep
进行休眠是为了让正在执行的线程休眠一段时间,不消耗CPU资源Ball.java
做了两件事--1)定义move()函数,确定小球的位置变换,实现小球的移动;2)定义getshape()函数,确定当前位置小球的形状;BallComponent对象--1)add(Ball b)添加要bounce的小球;2)paintComponent(Graphics g)绘制每个位置的小球;其内部的ArrayList是为了记录所添加的小球;程序运行过程中,生成了1个BallComponent对象;该程序使用了多线程技术,每个小球在不同的线程中进行绘制(在BallThread.java中addBall()的t.start()启动新线程)并回答:a)通过定义Runnable
接口的实现类来实现多线程程序比通过继承自Thread
类实现多线程程序有何好处?b) 6-1,6-3,6-11实验总结。
Runnable
接口的实现类来实现多线程避免了继承的局限(一个类可以有多个接口,但是只能继承一个父类)
6-1 实验总结:
编写MyThread类继承Thread;在类中实现对n的定义;通过for循环遍历输出0~n-1;要注意的是最后的输出System.out.println(Thread.currentThread().getName()+" "+isAlive())
只输出一次,不可嵌套在for循环中
6-3 实验总结:
本题是对匿名类的回顾,按题目要求逐次输出主线程名、线程t1线程名、线程t1实现的所有接口
6-11 实验总结:
与6-1具有一定的相似性,不同之处在于编写PrintTask类继承Runnable接口
boolean flag = true;
使得能够安全停止线程synchronized
修饰方法或代码块即可实现同步锁机制;保证某一时刻只能有一个线程访问资源synchronized, wait, notify
解决该问题(关键代码截图,需出现学号)组员 | 负责模块 | ||
---|---|---|---|
林俊伟 | 登录界面 | ||
王彩云 | 借书界面 | ||
罗佳 | 还书界面 |
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 | |||||
---|---|---|---|---|---|---|---|---|---|
第一周 | 189 | 189 | 10 | 10 | |||||
第二周 | 304 | 304 | 9 | 9 | |||||
第三周 | 557 | 557 | 10 | 10 | |||||
第四周 | 621 | 621 | 8 | 8 | |||||
第五周 | 326 | 326 | 7 | 7 | |||||
第六周 | 972 | 972 | 12 | 12 | |||||
第七周 | 338 | 338 | 4 | 4 | |||||
第八周 | 379 | 379 | 6 | 6 | |||||
第九周 | 492 | 492 | 5 | 5 | |||||
第十周 | 473 | 473 | 6 | 6 | |||||
第十一周 | 527 | 527 | 10 | 10 |