本次PTA做业题集多线程
java
Thread.sleep
进行休眠?答:git
Runnable
接口,以便于实现多线程,(实现多线程另外一方式,继承Thread
类);Thread.sleep
方法强制当前正在执行的线程进入休眠(暂停执行),以减慢线程。答:多线程
move()
方法使用了Rectangle2D
类规划了小球的移动轨迹;getShape()方法
使用了Ellipse2D.Double
以double精度定义椭圆(即得到小球的形状)。BallComponent
中的add
方法用于添加新的小球,paintComponent
用于绘制小球;ArrayList
用于存储小球。BallComponent
对象comp
;addBall()
方法内,每添加一个新的小球后会执行一次t.start()
,因此小球是分别在不一样的线程中进行绘制的。并回答:a)经过定义Runnable
接口的实现类来实现多线程程序比经过继承自Thread
类实现多线程程序有何好处?b) 6-1,6-3,6-11实验总结。
答:性能
MyThread
类的构造方法将参数n传递给run
方法;Thread.currentThread().getName()
方法用于获取当前正在执行的线程的名称,所以要获取哪一个线程的名称,就要把这句代码放到对应的线程内;Thread
类来实现多线程程序则没法再继承其余的父类;可是以实现接口来讲,一个类能够实现多个接口。答:使用退出标志,定义一个boolean
型的标志位,在运行过程当中判断标志是否符合退出条件。6-2中即是将boolean型的flag
变量设置为while
循环的判断条件,当flag为true时,则循环条件while(!flag)
为false,中止线程。学习
变量id为共享资源,在对变量id进行操做的方法用synchronized
对象锁修饰
线程
完成题集6-4(互斥访问)与6-5(同步访问)设计
同步代码块:
3d
答:同步方法直接在方法上加synchronized实现加锁,同步代码块则在方法内部加锁,同步方法锁的范围比较大,而同步代码块范围要小点,通常同步的范围越大,性能就越差,通常须要加锁进行同步的时候,范围越小越好,这样性能更好。code
答:
如上图,x为三个线程的共享资源,当三个线程不发生冲突时,理论上应获得的输出为30,而此处未对使用共享资源的add
方法以synchronized
修饰,致使线程有可能产生冲突。当使用了synchronized
修饰add
方法后,等因而为资源x加上了一个锁;当线程t1执行到synchronized同步代码块或者同步方法时,,此时t1将锁取走,得到了对x进行操做的权限,因为锁只有一个,t2,t3此时就没法调用x资源,只能等t1结束线程将锁归还后,t2或t3得到了这个锁后,才能开始对x执行操做。component
答:
答: 结果不正常,由于入库和出库的速度不同,因此有可能在库空时就执行出库操做,也有可能在库满时执行入库操做。
synchronized, wait, notify
解决该问题(关键代码截图,需出现学号)类 | 功能 | 负责人 |
---|---|---|
User | Status(身份权限)、id、password属性及构造方法、登录、注册 | 本次图书馆系统全部功能实现为独立完成 |
GeneralUser | 普通用户构造方法,继承User类,赋身份generaluser | 周彪 201621123010 |
Admin | 管理员构造方法,继承User类,赋身份admin | |
Books | 书籍构造方法、赋书籍名称 | |
Library | 上架新书、下架旧书、借书、还书、展现图书馆书籍信息、展现个人书包书籍信息、用户\管理员界面 (根据身份权限不一样展现不一样界面,赋予不一样方法的操做权限) | |
Main | 调用各方法 |
本次实验为独立完成。
实验各方法内容其实均相似,登陆、注册、上/下架书籍以及借阅归还书籍均为在文件上操做,基本上都是实现对文件的写入以及读取便可,本次实验对文件的操做都是先将文件信息读入ArrayList,再对ArrayList进行操做,操做结束后有必要的话再将ArrayList存储的数据写回文件;本次实验须要考虑的是针对图书馆的使用者不一样,,对应的权限也不一样,因此须要在登陆时对用户进行身份判断,根据身份显示相应的用户界面以及赋予相应的操做权限,另外为了区分开不一样身份的信息,使用了两个存储用户信息的文件,一个存储管理员的帐号密码,一个存储普通用户的帐号密码,根据身份打开对应文件查找是否存在输入的帐号信息。注册时也是这样,根据身份将身份信息存入不一样的文件内。而存储图书的文件这里也用了两个,一个为存储图书馆内的书籍信息,一个存储用户的书包内书籍信息,可是实际上须要更多的用户书包文件,为每个用户都分配一个书包文件,实验只是为了方便操做才只用一个。
点击查看代码
题目集:多线程
须要有两张图(1. 排名图。2.PTA提交列表图)
须要将每周的代码统计状况融合到一张表中。
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 90 | 90 | 5 | 5 |
2 | 322 | 232 | 11 | 6 |
3 | 652 | 330 | 16 | 5 |
4 | 946 | 294 | 21 | 5 |
5 | 1347 | 401 | 26 | 5 |
6 | 1591 | 244 | 28 | 2 |
7 | 2118 | 527 | 31 | 3 |
8 | 2627 | 509 | 39 | 8 |
9 | 2912 | 285 | 42 | 3 |
10 | 3171 | 259 | 50 | 8 |
11 | 3830 | 659 | 58 | 8 |