版权声明:需要转载的朋友下面留个言 https://blog.csdn.net/weixin_42955598/article/details/85851308
异步队列的实现
概念基础
-
同步与异步
- 同步和异步通常用来形容一次方法调用 - **同步方法**调用一旦开始,调用者**必须等到方法调用返回后**,才能继续后续的行为。 - **异步方法**调用更像一个消息传递,**一旦开始,方法调用就会立即返回**,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。
例如 假设一个方法 需要执行 step1 , step2 , step3 , step4 . 四步完成 。
那么同步方法便会从step1 执行到 step4 之后返回。
异步方法 需要一个异步起始点 假设为 step3 。那么一开始按照顺序执行 s’tep1, step2 后立即返回。之后通过其他线程继续执行step3,step4后改线程返回结果。 例如:抢票系统,抢票点击后 先创建订单。返回给用户,再通过其他线异步抢票抢票成功后短信回复。
- 单向/优先队列
- 单向队列 : 简单理解就是先进先出 。
- 优先队列 : 每一个队列元素拥有一个优先级 , 优先级高的元素先处理,优先级低的后处理。详情可以参考我的上一篇博客操作系统之调度算法 其中讲到了优先队列和优先队列的算法。
实现
- 流程图
- 业务描述
- 代码实现