zoukankan      html  css  js  c++  java
  • 0MQ讲述多线程魔法

    为什么你想过的所有你所知道关于并发的事情,不是完全神经病的(Insane),就是假的(Bogus)。

    并发的定律,e=mc*c。这里并不是爱因斯坦的质能方程。而是 努力 = 代码规模 * (线程冲突碰撞的平方)。

     

    随线程冲突升级,我们要为些付出指数增长的努力去解决。

    工业标准的并发模型基于大型计算的模型。

    并发意味着数据在线程间共享,随之需要锁,信号量,临界区;代码通常会失败;复杂,bugs,竞态。这些都令c系数变大。简直是完全神经病的模型。

    我们需要一个理想的世界,我们不必为些付出额外的努力。

    早在1973年,一种高性能的模型已经被提出,这种模型为我们带来在并发的c系数只为1。

    30年来,几乎被忽略掉了。erlang让我们再次想起这种模型。

    这里注意,所有的线程,进程,cpu核,节点系统都视为box。

    没有共享数据,所有inproc,ipc,节点通讯都只使用相同的socket风格api。

     

    你的应用应该是这样子的。跨语言跨平台,无锁等其它同步原语,任务各自私有状态,处理消息,只发消息到其它任务。这样就可以扩容到任意的核。

    https://www.slideshare.net/pieterh/fosdem-2011-0mq?next_slideshow=4

  • 相关阅读:
    java坏境内存不够用 大量占用swap 临时加swap
    磁盘分区
    简述raid0,raid1,raid5,raid10 的工作原理及特点
    给用户提权
    用户的环境变量被删除了
    定时任务
    linux权限
    kafka部署
    数据仓库
    kylin
  • 原文地址:https://www.cnblogs.com/bbqzsl/p/7543127.html
Copyright © 2011-2022 走看看