タグ

coroutineとqiitaに関するnabinnoのブックマーク (4)

  • Rustとコルーチンと非同期I/O - Qiita

    歴史 昔はスケジューラ実装にsegment stackを使っていた(libgreenを同梱) 1.0なる前にやめた libgreenをライブラリとして分離 (しかしメンテされず...) ライブラリ libgreen以降に実装がいくつか context-rs/coroutine-rs libfringe context-rs/coroutine-rs どちらもzonyitooさんが書かれたもの Boost.{Context,Coroutine}の移植 libfringe パフォーマンスがよいらしい なんでかよくわからん、、XMMあたりも保存レジスタ指定入っとるし... 分岐予測ミス回避のために ret でなく jmp+pop にしてるとかはあった primitiveなcontext-rs相当とGeneratorのようないいかんじのやつ libfringe (Cont.) Generatorの

    Rustとコルーチンと非同期I/O - Qiita
  • Node.js + co + koa の勧め - Qiita

    co(function*() { var a = yield get("a.txt"); var b = yield get("b.txt"); var c = yield get("c.txt"); console.log(a + b + c); })(); ちょっと良くない? JavaScript の非同期プログラミングという 一番醜い所を綺麗に見せてくれる。 これならやっと人に勧められそうな気がする。 ※記事を書いた → [JavaScript] 非同期処理のコールバック地獄から抜け出す方法 - Qiita ちょっと過激目な予告 それで個人的な予告: Express は段階的に無くなるのではないか。 もしかすると、終焉を迎えることになるのではないか。 言い過ぎか... Koa に移行しよう co ベースの新しい Koa に移行しましょう。 まだバージョンは 0.3.0 だけどね。 ま

    Node.js + co + koa の勧め - Qiita
  • co(koa.js)は中で何をしているのか. - Qiita

    qiita投稿テスト.元エントリ node.jsはasyncの夢を見るか?の続き. coのようなモジュール(他にもこことかこことか)がどのような形で実装されているのか知りたいのは僕だけでは無いと思う.理解のために出来る限り単純化してみた. var co = function(fn){ // callback var done = function(val){ // yieldに値を流し込む gen.next(val); } // make a generator var gen = fn(done); // start gen.next(); }; // test // 0~4までをディレイ付きで表示する co(function*(done){ for(var i=0;i<5;i++){ var val = yield setTimeout(function() { done(i); },

    co(koa.js)は中で何をしているのか. - Qiita
  • 最近のjs非同期処理 PromiseとGeneratorの共存 - Qiita

    (2015/10/21追記) 記事を書いてから半年経ちましたが、最近はRxの良さを理解したり、ES7のasync/awaitがbabelによって実用的になりつつあったり等、またもやベストプラクティスとはなんだったのか状態です。とはいえ、いまのところPromiseは非同期処理の土台であり続けそうですし、Generatorもasync/awaitへの足がかりとして知っておくことのメリットは大きいかと思いますので、引き続き公開させたままとさせて頂きます。 (追記ここまで) 数ある非同期処理のプラクティスを試してみて、だいたいこれが良いんじゃないかというパターンが固まったので書きます。効用はコールバック地獄からの脱出と結局非同期どれが良いの感の払拭。ES6寄りです。 前提知識 JavaScript Promiseの http://azu.github.io/promises-book/ ジェネレ

    最近のjs非同期処理 PromiseとGeneratorの共存 - Qiita
  • 1