标签:排名 匿名内部类 提交 get void lock lambda 相关 getname
本次PTA作业题集多线程
答:BallRunnable类实现Runnable接口,用于执行多线程任务,在run中通过move和repaint的循环来实现小球的移动;进行休眠是为了让方法完成的时间增加,不然看不清楚小球的运动轨迹。
答:Ball.java定义了move函数和getShape函数,一个用于实现球的移动,一个用于获取球的大小和坐标;BallComponent对象用于添加球;ArrayList用来存放生成的球;总共生成了一个BallComponent对象;使用多线程技术,每次调用都会生成一个新的小球,是在不同的编程中绘制的。
并回答:a)通过定义Runnable接口的实现类来实现多线程程序比通过继承自Thread类实现多线程程序有何好处?b) 6-1,6-3,6-11实验总结。
答:实现Runnable接口后还可以继承其他的类,可以继承更多的条件,并且Runnable可以让多线程共同执行任务。
6-1:创造类MyThread,编写构造函数,用for循环输出规定次数的整数,最后打印标识信息。
6-3:按照要求分别进行三次输出即可。
6-11:与6-1类似,创造类PrintTask,编写构造函数,用for循环输出规定次数的整数,最后打印标识信息。
答:
Thread t1 = new Thread(() -> {
System.out.println(mainThreadName);
System.out.println(Thread.currentThread().getName());
System.out.println(Arrays.toString(Thread.class.getInterfaces()));
});
答:在6-2中,使用while循环持续运行线程,用flag作为停止线程的标志位,当flag被修改时,停止线程。
答:
完成题集6-4(互斥访问)与6-5(同步访问)
答:还可以使用同步方法块
public void send(int number){
synchronized(this){
this.balance+=number;
}
}
//201621123014吴延彬
public void back(int number){
synchronized(this){
this.balance-=number;
}
答:同步方法直接用synchronized修饰整个方法,将整个方法都锁了;同步代码块则是在方法内某些地方上锁,范围较小。
答:原理就是通过获得唯一的锁来进入方法,在执行完后归还锁。当锁已经被取走后,其他线程就不被允许进入方法,只能等到锁归还后才能使下一个线程继续取得锁进入方法。
当程序执行synchronized同步代码块或者同步方法时,线程先进入Runnable,如果锁还在,就获得锁进入Running,如果锁已被取走则进入wait Pool,然后在notify()之后进入Lock Pool等待,当锁归还后才进行之后的操作。
答:使用wait()和notify()来实现线程的协同工作。
答:不正常,正常情况应该是库存都为0,但实际上,多次运行时经常出现库存为100,为了简化输出,我试试存入取出均为3的情况,如图所示,第一次运行是正常的,但第二次就出现库存为3的异常情况,比较后发现,第二次运行时,会先进行取出货物的操作,但没有货物可以取出,所以显示取出失败;之后再进行放入货物,所以最后会出现有3个库存的情况。观察后认为原因是没有进行同步方法。
答:
暂时没有完成此题
题目集:多线程
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
必须出现几个要素:提交日期-用户名(姓名与学号)-不提交说明
需要有两张图(1. 排名图。2.PTA提交列表图)
需要将每周的代码统计情况融合到一张表中。
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 313 | 313 | 9 | 9 |
4 | 641 | 328 | 20 | 11 |
5 | 946 | 305 | 25 | 5 |
6 | 1451 | 505 | 32 | 7 |
7 | 1969 | 518 | 35 | 3 |
8 | 2284 | 315 | 43 | 8 |
9 | 2682 | 344 | 47 | 4 |
10 | 2938 | 256 | 55 | 8 |
11 | 3196 | 258 | 62 | 7 |
201621123014《Java程序设计》第十一周学习总结
标签:排名 匿名内部类 提交 get void lock lambda 相关 getname
原文地址:http://www.cnblogs.com/ayasakihayate/p/7953646.html