OO_UNIT_2 博客作业

71066014 易畅 2024-04-20 19:52:25
作业背景

学习多线程编程的基础知识和线程同步的概念。学习线程同步和互斥,同时引入了更多的电梯功能,如容量和速度的控制。学习多个线程之间的协作和通信,以及更复杂的电梯调度算法。

协作图

img

LOOK策略

LOOK电梯调度算法:

  1. 将初始方向设定为向上。
  2. 每到一层楼检查乘客上下电梯。
  3. 如果有乘客在内部,则继续当前方向移动。
  4. 如果没有乘客,在请求队列中检查:
    • 如果有请求在前方,则继续相同方向移动。
    • 如果所有请求都在后方或者有请求在当前楼层但目的地在电梯后方,则改变方向。
  5. 如果队列为空且输入线程未完成,则等待。
  6. 如果队列为空且输入线程已完成,则结束操作。

这个算法最小化电梯的空闲时间。

心得体会

确实,在多线程编程中,线程安全性是至关重要的,而对锁的理解和正确的使用能够有效地确保程序的正确性和可靠性。尤其是在像电梯调度这样的场景中,各个线程可能会同时竞争资源,正确地处理锁的逻辑可以避免出现竞态条件和数据不一致等问题。

通过对锁的设计和使用,我不仅解决了线程安全的问题,还提升了自己对于锁的理解和应用能力。这对于编写高效、稳定的并发程序至关重要。在未来的开发中,这些经验将会是宝贵的财富,能够更加从容地处理各种复杂的并发场景。

...全文
93 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧