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

  • 面向对象第二单元总结

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

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

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

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

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

    #多线程实时电梯系统 第一次作业 ##架构 ###InputThread 处理输入的线程 当收到的personrequest是null时,代表用户已经输入了^D,此时将五座大楼的等待序列设置finished并通知每座大楼,唤醒正在wait的线程。 若收到的request不是null,将会找到对应bu
    peaceminuczy   2022-04-29 10:56   0   62
  • OO2022第二单元总结

    OO2022第二单元总结 本单元内容是电调调度与多线程,因为之前完全没有真正上手写过多线程程序,所以相比第一单元对我而言相对熟悉的内容,完成第二单元需要更多的思考。 在代码的架构设计上,使用了最基本的生产者-消费者模式,简而言之就是一个线程解析请求,然后分发到各个电梯的请求队列。 第一二次作业请求解
    aaicy64   2022-04-28 20:58   0   15
  • BUAA_OO第二单元总结

    第二单元作业总结 一、整体架构设计 (注:输出类仅仅是对原有输出方法进行了封装,以下未单独列出。) 1.1 第一次作业 本次作业参考了实验课上的架构: 主线程main设置初始变量、创建类、启动线程。 输入线程input专门处理输入请求,并将该请求传入主调度类。 主调度线程schedule处理来自输入
    DreamWave   2022-04-27 22:56   0   28