今天学习有关并发的内容,先看提示:
提示56 通过分析工作流来提高并发性。
作者先从时域耦合开始讲起,考虑对时间依赖或顺序依赖解耦。通过画出活动图来分析工作流,找出哪些任务一开始就可以并行,哪些任务必须要单独执行。作者认为流水线上所有速度相对较慢的工作,都为我们提供了利用并发性的机会,找到那些会让我们的程序卡住的地方,利用CPU可以做一些更有意义的事情。作者认为并发性是一种软件机制,而并行性则和硬件相关。识别出这些机会,可以让我们把工作分成独立的一块一块,并行处理,最后合并结果。
我们系统对并发比较谨慎,每次用的地方都要找人review以后才被允许上线。确实当数据量不是特别大的时候盲目使用并发只会带来更多的麻烦。而且并发很容易带来资源泄漏、调试困难等副作用,必须慎之又慎。但是一旦涉及大量数据的时候并发又是并不可少的,我自己也写过很多例子。针对这一节的内容,我感觉作者只是刚刚开了个头,建议我们使用类似活动图这样的工具来帮忙先分析业务情景,只有先理清线索,才能有的放矢。以前我遇到特别复杂的case也会借助流程图来辅助思考,可能今后我会更多利用相关工具来帮自己更快更好理解业务场景。
网友评论