You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
p/phoenix-framework-4/
从 0 到 1 设计业务并发框架系列: Phoenix 框架 小米商城产品站革新之路 Phoenix 框架 怎么组织设计一个框架 Phoenix 框架 并发线程池的核心设计 Phoenix 自动构建有向无环图的业务并发框架,核心就在于不需要开发人员关心调用分层和依赖互斥的排序问题,通过算法进行自动构建、收集 Task 任务、检测环或者依赖,最后打印并发组分层信息。 本篇文章就讲解下如何构建有向无环图的设计实现方案及遇到的问题。 实现方案 有向无环图的构建采用的是设计模式中的策略模式,首先定义好 Builder 的实现方式,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** * @author debuginn */ public interface PhoenixBuilder { // 过滤 Phoenix API 使用到的 Task 任务 Map<String, ArrayList> filterApiUsedTask(ArrayList transObjArrayList); // 根据 api 获取需要执行的 trans Map<String, ArrayList> apiTransMap(ArrayList transObjArrayList); // 是否存在依赖关系 void isHaveLoop(Map<String, ArrayList> apiUsedTaskMap); // 处理并发组分层划分 Map<String, ArrayList<ArrayList>> processConcurrentGroup(Map<String, ArrayList> apiUsedTaskMap); // 打印并发组分层信息 void printConcurrentGroup(Map<String, ArrayList<ArrayList>> phoenixApiArrayListMap); } PhoenixBuilder 需要实现 6 种方法:
https://blog.debuginn.com/p/phoenix-framework-4/
Beta Was this translation helpful? Give feedback.
All reactions