码迷,mamicode.com
首页 > 编程语言 > 详细

201621123086 《Java程序设计》第11周学习总结

时间:2017-12-02 22:03:17      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:2-2   component   学习   不同的   lam   一个   log   ima   匿名   

1. 本周学习总结

技术分享图片

2. 书面作业

1. 源代码阅读:多线程程序BounceThread

1.1 BallRunnable类有什么用?为什么代码中需要调用Thread.sleep进行休眠?

答:

  • BallRunnable完成了Runnable接口。类中有四个属性跳跃的球Ball、窗体Component、蹦跳次数STEPS与延迟DELAY
  • 调用Thread.sleep是为了让线程进行短暂休眠,使我们能更清晰的看清楚小球的移动。

1.2 Ball.java只做了两件事,这两件事分别是什么?BallComponent对象是干什么的?其内部的ArrayList有什么用?程序运行过程中,生成了几个BallComponent对象?该程序使用了多线程技术,每个小球是分别在不同的线程中进行绘制吗?

答:

  • 分别是move()移动方法与getShape()得到大小与坐标
  • 添加小球对象与在窗体中显示小球对象
  • ArrayList用于存放小球
  • 生成了一个对象
  • 每个小球是分别在不同的线程中进行绘制的

1.3 选做:程序改写:程序运行时,每个小球都是从固定位置出发。如何改写该程序,使得当点击start时,每个小球可以从不同位置出发、以不同的步进移动?

答: 从代码中可以看出Ballxy代表起始位置dx``dy代表步长。调用Math.random()进行随机就可以设置不同位置出发、以不同的步进移动的效果。


2. 实验总结:题集(多线程)

2.1 题目:Thread、PrintTask、Runnable与匿名内部类。

并回答:a)通过定义Runnable接口的实现类来实现多线程程序比通过继承自Thread类实现多线程程序有何好处?b) 6-1,6-3,6-11实验总结。

  • a)一个类可以完成多个接口,父类却只能有一个。同时Runnable接口更适合资源的共享。
  • b)
    6-1: 继承Thread类,完成run方法即可
    6-3: 编写一个完成Runnable接口的匿名内部类
    6-11: 编写一个完成Runnable接口的类

2.2 使用Lambda表达式改写6-3

    Thread t = new Thread(() -> {
        System.out.println(mainThreadName);
        System.out.println(Thread.currentThread().getName());
        System.out.println(Arrays.toString(Thread.class.getInterfaces()));
    });

2.3 题目:6-2(Runnable与停止线程)。回答:需要怎样才能正确地停止一个运行中的线程?

答:

  • 可以调用stop()方法
  • 可以调用interupt()方法
  • 可以设置flag作为run()方法循环的标志

2.6 选做:较难:6-10(Callable),并回答为什么有Runnable了还需要Callable?实验总结。

  • 实验总结:此实验要注意的点包括:call()方法返回Integer而非基础类型;在调用future.get()方法时要注意处理异常。
  • 相比于RunnableCallable可以返回一个值。需要注意的是,call方法返回的是Future对象。

3. 互斥访问

3.1 修改TestUnSynchronizedThread.java源代码使其可以同步访问。(关键代码截图,需出现学号)

技术分享图片

201621123086 《Java程序设计》第11周学习总结

标签:2-2   component   学习   不同的   lam   一个   log   ima   匿名   

原文地址:http://www.cnblogs.com/piraat/p/7955505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!