状态机与并发活动的设计模式
一、引言
在软件开发中,设计模式已成为捕捉经验教训的流行方式。设计模式是针对特定上下文中设计问题的通用解决方案,它应是被广泛接受而非新颖独特的,其目的是将设计经验传递给新手,而非教软件老手新技巧。
在一系列论文中,提出了一组用于交互任务的模式:
1. 资源任务与资源用户任务 :这是共享单一资源的对偶模式。设计者可以选择将每个资源表示为依次处理请求的任务,或者让资源用户作为任务,通过受保护对象来表示资源。
2. 多资源并发访问 :涉及同时、排他地访问多个共享资源的设计情况,通常解决方案包含资源用户任务。虽然死锁是这类问题需要关注的点,但资源用户任务常可根据编程约定(如锁定顺序)来设计,以防止形成循环等待链。
3. 状态机及相关活动的实现 :状态机被实现为受保护对象。早期的状态机模式在包含定时事件时将其实现为任务,但这意味着如果在后期引入定时事件,实现方式就得改变。而本文提出的模式版本通过定时器任务来实现定时事件。
二、设计哲学:实体 - 生命建模(ELM)
一组模式可以定义一种设计哲学,状态机模式体现了实体 - 生命建模(ELM)的设计方法。它有两个目标:
1. 作为一种建模方法,描述软件的线程架构如何基于问题中的并发结构进行构建。
2. 提倡对并发的限制性使用,旨在消除不必要的线程和上下文切换,通常由单个任务处理软件需应对的问题环境中的每个事件。
在面向对象设计中,类和对象能从领域分析“无缝”过渡到设计和实现。而在 ELM 中,领域的并发特征会被带
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



