流水线上的思考——异步程序开发模型(3)

流水线上的思考——异步程序开发模型(3)

大家好,又见面了,我是全栈君。

上次我们讨论了关于业务之间无关联性的一种处理模式。但是对于很多的系统来说,这种无关性的处理方式是很少的,更多的恰恰是那些彼此之间存在一定联系的业务。例如:在网吧上网的玩家,一般来说他们会先进行上机,然后才下机。很少听说这个玩家还没有上机就需要下机的情况(如果有的话有可能这个系统有问题,或者出现了一些其它的原因)。 
这样的业务就存在一定的关联性,在我们系统处理过程中,势必要遵从他们的业务处理逻辑来进行处理,即业务中处理也需要一定的顺序性。
 
对于这种具有顺序性的业务,能否利用我们之前所使用的方法来进行处理呢?下面我们来简单地分析一下。
首先,我们之前讨论的处理模式,是在接收到业务数据以后,将这些业务数据直接投递给一个IOCP
的线程池来进行处理。这里我们会发现一个问题:当我们将业务1
发送给一个IOCP
线程池中的一个线程A
以后,再投递第二个业务2
时,业务处理是否为顺序的呢?如果是顺序的,那么我们就可以继续使用这种处理方式;但如果不是顺序的,那么我们肯定不能再使用这种方法。
很不幸,根据《windows
核心编程(第五版)》中所讲和本人亲身测试,对于IOCP
线程池的处理并不是顺序处理的。这就意味着我们需要重新构思一个方式来进行处理。
 
这种问题,估计每个人都有自己的处理方法,我在这里讲的处理方法仅是抛砖引玉。
我采用的是对象和线程管理的处理方法。就上面具的例子来说,就是每个网吧和一个线程进行绑定的方法。这样一来,针对每个网吧的业务数据来看,他的处理必然是顺序的,即处理完业务1
后再处理业务2
 
处理过程如下图:
流水线上的思考——异步程序开发模型(3)
 
可以看到业务从IOCP
网络线程中接收到以后,需要针对此业务属于哪个对象进行区分。然后从这个对象中得到处理该对象的线程。并将这个业务投递给这个线程进行处理。
 
今天我们讨论了对于业务具有顺序性的数据如何进行处理的方法。并且提出了一种解决的参考方法。这种方法不一定完全适合于您,如果您知道更好的方法请您留言。
 
通过这三篇文章,我们从一个流水线工作方式为入口,粗略讨论了在软件开发方面如何做到类似流水线这种开发模型。其中必然存在一些不足的地方,还请大家指出,谢谢。
本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/1152176如需转载请自行联系原作者

fxh7622

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108057.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月8日 上午8:00
下一篇 2022年3月8日 上午9:00


相关推荐

  • 复制粘贴不到远程桌面_远程桌面无法复制到本地

    复制粘贴不到远程桌面_远程桌面无法复制到本地在远程服务器上打开任务管理器,在进程里面找到rdpclip进程(或者剪贴板监视器),点击“结束进程”打卡DOS命令符,输入rdpclip后,确认,从新打开远程剪贴服务。

    2022年8月19日
    9
  • idea激活码永久免费【2021免费激活】

    (idea激活码永久免费)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsa…

    2022年3月21日
    105
  • 男人的恋爱过程「建议收藏」

    男人的恋爱过程「建议收藏」当对选择恋人的过程越谨慎,就越容易找到适合的恋人。虽然有的人很快就达到目的,但是基本上这是一个不断尝试与错误的过程。透过自我调整,最后终将达成目的。对常规四个阶段变化的了解,你可以了解你距离目标还有多远。让我们仔细探索男人、在四个阶段中的不同反应。男人:生理上的吸引在第一阶段男人对女人先产生生理上的吸引是很正常的。男人尤其注意女人的外表,她走路的方式、她的头发、微笑、眼睛、身高、美腿、…

    2022年7月25日
    12
  • 搜空白符号_excel筛选空白格

    搜空白符号_excel筛选空白格这是网络上很多人都在找的空白格符号,游戏ID、文本编辑、设计等等,这些是确实可用的,如果不小心帮到了你,点赞评论支持。➧ 空白格符号:【】【】【 】【】➧ 小空白格符号:【】【⠀】【⠀】【⠀】【】➧ 极小空白格符号:【⁡】【⁡】 注:【括号中】是有字符的带着括号复制,把括号删除即可下面是一些其他符号:▲÷↑↓◆◇⊙■□△▽─│♂♀▼≈←→◎☉★☆⊿※━┃ツΣ卐√↖↗●Θ◤◥︻〖〗┄┆℃℉°¢€£∞★×↙↘○⊕◣◢︼【】┅┇〓▂▃▄▅▆▇█▉▊▋▌▍▎▏の┈┊①②③④⑤⑥⑦⑧⑨⑩

    2022年10月5日
    4
  • Tween算法

    Tween算法博客园 Tween 算法网址 http www cnblogs com cloudgamer archive 2009 01 06 tween html 效果说明首先大家到这里下载 flash 的 as 脚本 建议看看这里的 demo 1 0 和 2 0 都可以 里面的算法都一样 例如打开 2 0 的可以看到几个 as 文件 每个文件对应一个 Tween 效果 分别有 参考里面的说明

    2026年3月17日
    2
  • 鳄鱼mt4复盘助手_免费MT4复盘助手2015年8月新版

    鳄鱼mt4复盘助手_免费MT4复盘助手2015年8月新版本帖最后由宁静的魔于2015-8-2713:56编辑简介:鳄鱼复盘助手由鳄鱼金融独立研发,可对历史数据进行复盘测试,研究自己的交易系统。乃操盘交易必备神器。鳄鱼复盘助手完全免费,本论坛会员即可参与使用。本程序需要.netframework运行库,部分计算机没有装的下载安装一下,这个可以解决双击无反应.netframework4.0下载参与公测活动可得论坛纪念勋章,详情请点击:鳄…

    2022年5月18日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号