面向对象设计与构造2022 (北京航空航天大学 - 计算机学院)

  • OO第二单元总结博客

    第五次作业 1.1 思路分析 第五次作业实现了五个楼座每个楼座单个电梯,以基本的消费者生产者模型为思路,一个输入类作为生产者线程,五个楼座的总共五个单部电梯作为五个消费者。构建自己的一个存放请求的线程安全队列,每个楼座对应一个队列,生产者线程将输入判断后添加到对应的队列中,电梯作为消费者从对应队列中
    YanG2k17   2022-04-29 19:09   0   7
  • Java多线程程序设计总结——电梯

    第一章 基本架构 第一次作业架构 二话不说,先上架构。 总体设计 总的来看,我的作业架构主要包括输入类(InputHandler),总调度器(Simulator),电梯类(Elevator),乘客类(Passenger),输出类(OutputHandler)。输入类不断将请求打包为乘客类后放入总调度
    Combinatorics   2022-04-29 18:35   0   76
  • 2022 OO第二单元

    2022 OO 第二单元总结 一、同步块的设置和锁的选择 首先是输出线程的安全性。输出不应该单独建立线程,否则容易导致时间戳不递增的现象,不符合输出要求。如下代码所示,应对官方包所提供的输出进行同步封装。 public static synchronized long println(String
    RacerK   2022-04-29 18:33   0   28
  • 面向对象第二单元总结

    面向对象第二章总结 1. 作业中的同步操作 第二章主题是多线程设计,因此作业的训练主要也是围绕多线程并发问题。我在这三次作业中使用的同步方法有synchronized, lock和readwritelock。 第一次作业中,由于需求简单,各个电梯任务独立,因此涉及的对象贡献资源只有每个电梯自己的候乘
    夜光WAN   2022-04-29 18:30   0   18
  • OO第二单元总结

    OO第二单元总结 一、同步块的设置和锁的选择 1.1锁与同步块中处理语句之间的关系 **需要设置同步块和锁的原因是:**多个线程访问/操作同一共享对象,需要锁来保证一个线程对该共享对象的访问/操作不会被其他线程打断。 锁与同步块中处理语句之间的关系:锁将它锁住的语句快(被锁住的这一块语句也称为同步块
    Siazxyyy   2022-04-29 18:28   0   19
  • BUAA OO 第二单元总结

    #:artificial_satellite:BUAA OO 第二单元总结 ✍第五次作业 🏠程序架构 (UML类图中省略了一些不重要的getter&setter方法和构造方法,下同) ####💬重要类描述 + 调度器设计 😶RequestQueue: ​ 第一次作业对于Request的处理比较
    alxzzz   2022-04-29 17:20   0   27
  • OO 第二单元总结

    一、总述 在本单元中我们主要学习的是多线程的调度,了解并熟悉如何实现线程安全的问题,通过对电梯调度的三次迭代开发进一步了解多线程的使用 UML类图如下: UML协作图如下: 二、作业分析 1. 第五次作业 (1)作业要求 第五次作业主要要求的的是五栋楼各有一部电梯,电梯直接互不干扰,仅共用一个总输入
    zzb不是bzz   2022-04-29 15:23   0   4
  • BUAA_OO_2022 第二单元总结

    OO 第二单元 电梯 总结 目录 一、三次作业分析 二、bug分析 三、心得体会 在第一部分将结合三次作业的uml类图,介绍每次作业的设计思路关键点、同步块与锁的选择以及调度器迭代,再展示最后的UML协作图。 在第二部分将介绍程序bug、hack和test策略。 在第三部分讲述心得体会。 一、三次作
    Lzchhh   2022-04-29 13:46   0   18
  • BUAA_OO_第二单元总结

    害羞羞,这多线程啊就喜欢开玩笑!
    霍墨墨   2022-04-29 12:45   0   24
  • BUAA_OO_Unit2

    同步块与锁 在3次作业中,我只使用了同步块(synchronized),原因是同步块就完全可以解决共享数据安全问题,并且语法简单、固定并且性能也不差。而锁(lock)虽然更加灵活,但是在作业中并不必要,而且容易出错。 在3次作业中,存在共享数据安全问题的代码主要在"生产者—消费者"模式下的 一级托盘
    FYQS   2022-04-29 10:57   0   26