V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
chenqh
V2EX  ›  JavaScript

javascript 怎么实现生产者消费者模式

  •  
  •   chenqh · 2019-04-14 12:45:39 +08:00 · 5196 次点击
    这是一个创建于 1837 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是一个简单的生产者放入数字,然后消费取出数字,然后 url 请求,
    python 我能 thread+queue 实现,但是 javascript 我就想不出来怎么搞

    9 条回复    2019-04-14 20:33:28 +08:00
    sunjourney
        1
    sunjourney  
       2019-04-14 12:51:32 +08:00   ❤️ 1
    对应你说的 python 的实现,js 用生成器
    beginor
        2
    beginor  
       2019-04-14 13:13:16 +08:00 via Android   ❤️ 1
    rxjs 了解一下
    lhx2008
        3
    lhx2008  
       2019-04-14 13:17:07 +08:00 via Android   ❤️ 1
    如果是单线程跑没那么多讲究吧,一个事件推,另外一个事件不停循环拿数据就行了
    wly19960911
        4
    wly19960911  
       2019-04-14 13:17:59 +08:00   ❤️ 1
    js 没有真正意义上的多线程,没有那么多消费者。
    lhx2008
        5
    lhx2008  
       2019-04-14 13:18:31 +08:00 via Android   ❤️ 1
    而且本来就是异步 callback,和生产者消费者没区别,生产者有变化直接去调消费者 callback 就可以了。
    Cbdy
        6
    Cbdy  
       2019-04-14 13:27:16 +08:00   ❤️ 1
    chenqh
        7
    chenqh  
    OP
       2019-04-14 13:43:25 +08:00
    @Cbdy 我的意思是怎么用协程的方式来实现生产者消费者
    polythene
        8
    polythene  
       2019-04-14 15:22:25 +08:00   ❤️ 1
    可以用 event 的 emit 和 on 方法来模拟发送和接受
    Bramblex2
        9
    Bramblex2  
       2019-04-14 20:33:28 +08:00
    首先,先了解一下线程、协程和异步以及 JavaScript 异步实现原理。

    虽然绝大多数情况,在 JavaScript 里面,除非涉及到分布式系统,否则根本不需要所谓的生产者消费者概念……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4795 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:52 · PVG 17:52 · LAX 02:52 · JFK 05:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.