EA&UML日拱一卒--序列图(Sequence Diagram)::同步/异步
来源:互联网 发布:c语言中最大公约数 编辑:程序博客网 时间:2024/05/20 11:32
上一篇文章讲到,消息是从一个对象的生命线指向另一个对象的生命线的实线箭头。
听起来好像很简单,但如果打开了消息的属性对话框,就会知道根本就不是那么回事,对话框的内容很多,我们首先关注下图红圈中的内容。
同步调用
Synch项目选中【Synchronous】以后,Kind项目就固定为【Call】,这时消息就被指定为同步调用方式。具体看下面的例子:
同 步调用消息表示为封闭填充实线箭头,它的含义为SynchronousClient调用SynchronousServer的sendMessage方 法,sendMessage调用内部处理以后,将结果返回给SynchronousClient。同步调用说起来高大上,实际就是最常见的函数调用。
上图虚线分叉箭头表示返回值,它的设定方法很简单,只要选中消息属性对话框蓝圈中的【Is Ret...】项目即可。
异步调用
Synch项目选中【Asynchronous】,Kind项目选中【Call】以后,被选中的消息就被指定为异步调用方式。具体看下面的例子:
异 步调用消息表示为分叉实线箭头,它的含义是AsynchronousClient调用AsynchronousServer的postMessage方法 时,不等待对应处理结束就直接返回,而对应处理由另外的控制流启动,任务完成后再将结果以异步方式通知给AsynchronousClient。异步调用 的执行说明虽然是连续的,但那只是语义上的连续。
异步信号
Synch项目选中【Asynchronous】,Kind项目选中【Signal】以后,被选中
的消息就被指定为异步信号方式。具体看下面的例子:
异 步信号消息和异步调用消息一样,表示为分叉实线箭头,它表明:上图中SignalActivation并不是SignalServer的方 法,SignalClient在SignalActivation中做的就是激活信号,并不会关注有谁在等待信号,也不会关注处理是否结束。 SignalServer等待信号被激活后执行相应的处理,但并不知道是由谁来激活的。生命线上的执行说明虽然是连续的,但那只是语义上的连续。消息的指 向也是语义上的指向。从类参照的观点来看,双方都不需要意识对方的存在。
当SignalServer的处理结束后,往往是激活另外一个信号来报告处理结束,此处省略。信号的实现可能是Event,也可能是Mutex或Semaphore等。
如果阅读本文能给您带来些许收获,欢迎分享给更多的朋友!
阅读更多新文章,请扫描下面二维码,关注公众号【面向对象思考】
- EA&UML日拱一卒--序列图(Sequence Diagram)::同步/异步
- EA&UML日拱一卒--序列图(Sequence Diagram)::交互概述图
- EA&UML日拱一卒--序列图(Sequence Diagram)::入门
- EA&UML日拱一卒--序列图(Sequence Diagram)::生命周期
- EA&UML日拱一卒--序列图(Sequence Diagram)::迭代表达式
- EA&UML日拱一卒--序列图(Sequence Diagram)::消息签名
- EA&UML日拱一卒--序列图(Sequence Diagram)::时间约束
- EA&UML日拱一卒--序列图(Sequence Diagram)::条件执行
- EA&UML日拱一卒--序列图(Sequence Diagram)::循环
- EA&UML日拱一卒--序列图(Sequence Diagram)::门
- EA&UML日拱一卒--序列图(Sequence Diagram)::状态不变量
- EA&UML日拱一卒--序列图(Sequence Diagram)::连续
- EA&UML日拱一卒--序列图(Sequence Diagram)::并行和临界区
- EA&UML日拱一卒--序列图(Sequence Diagram)::交互和交互使用
- UML之序列图(Sequence Diagram)
- EA&UML日拱一卒--类图::对象图(object diagram)
- UML时序图Sequence Diagram
- UML 顺序图(时序图) sequence diagram
- css知识填坑(一)——选择器
- 我的第一个shell脚本文件
- 二叉搜索树的第k个结点
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
- 数据流中的中位数
- EA&UML日拱一卒--序列图(Sequence Diagram)::同步/异步
- hdu5782
- 滑动窗口的最大值
- ViewPager使用版本一
- Java_RandomAccessFile和IO流
- Easy-14
- 矩阵中的路径
- 1.docker的安装
- 机器人的运动范围