Double-ATM-Simulator
Created|DIICSU Projects
Double-ATM-Simulator
介绍
本项目是一个基于 Unity 的模拟器,通过两个独立 ATM 界面同时操作同一共享银行账户,直观展示并发访问下的数据一致性问题。该项目是为 DI22004 - Computer Systems 2B(计算机系统 2B)的一个作业而开发的。
核心并发控制采用简单的互斥机制:当一台 ATM 开始交易(取款/转账)时,另一台 ATM 若登录同一账户,则显示“账户已被占用”页面,并阻止后续操作,直至前一交易完成或登出。
主要技术组件包括:AtmDataManager(中心化的账户状态持有者,类似单例)、各页面脚本(LoginPage、MainPage、WithdrawPage、TransferPage、RecordPage、OccupiedPage)以及 AtmTerminal(协调双 ATM 逻辑并触发占用检查)。交易代码路径中故意保留人工短延迟,以便更容易观察到竞争窗口。
项目强调 UI 驱动的同步而非底层线程原语(未描述显式 Monitor/Lock/Semaphore 使用),适合演示并发概念。
本项目采用 Unity 及 C# 实现,包含按键音效、数字键盘按压光效、交易动画流程,以及预设测试账号等。
访问
本项目已在 GitHub 上开源。
🔗 Double-ATM-Simulator on GitHub发现问题、bug,或希望提出建议?
请您在本 GitHub 项目的 “Issues” 区内提出:
- 点击 “New issue”。
- 按要求撰写标题(title)和描述(description)。
- 点击 “Create”。您也可以在 Windows 电脑上按下 Ctrl + Enter 或在 Mac 上按下 ⌘ ⏎。
版权声明 / Copyright Notice
本帖采用 CC BY-NC-SA 4.0 许可协议发布。转载请注明来源。
This post is licensed under CC BY-NC-SA 4.0. Credit the source when reposting.
本帖采用 CC BY-NC-SA 4.0 许可协议发布。转载请注明来源。
This post is licensed under CC BY-NC-SA 4.0. Credit the source when reposting.
