- 主动对象、进程和线程
- 对多控制流建模
- 对进程间通信建模
- 建立线程安全的抽象
现实世界不仅是一个严厉无情的地方,而且还是一个非常忙碌的地方。一些事件和事情都在同一时间发生。因此,当对现实世界的系统建模时,必须考虑它的进程视图,包括形成系统的并发与同步机制的线程和进程。
在UML中,可以将每个独立的控制流建模为一个主动对象,它代表一个能够启动控制活动的进程或线程。进程是一个能与其他进程并发执行的重量级的流;而线程是一个能与同一进程中的其他线程并发执行的轻量级的流。
建立抽象,使它们在多控制流同时存在的情况下安全地工作,这是困难的。特别是,不得不考虑比顺序系统更复杂的通信和同步方法。还得非常小心,对进程视图的工程化程度既不能过度(太多的并发流会使系统产生颠簸),也不能过低(并发不足则不能优化系统的吞吐量)。
1. 入门
在UML中,每个独立的控制流被建模为一个主动对象。主动对象是一个可以启动控制活动的进程或线程。像所有的对象一样,主动对象是类的一个实例,在这种情况下,它是主动类的实例,同样也像所有的对象一样,主动对象通过传送消息进行互相之间的通信然而在这里,消息的传送必须扩充某些并发语义,以帮助同步相互独立的流之间的交互。
UML提供了对主动类的图形化表示,如图所示&