タグ

ブックマーク / keens.github.io (4)

  • 「実践Rust入門」を書いたよ | κeenのHappy Hacκing Blog

    κeenです。実践Rust入門 言語仕様から開発手法まで(技術評論社)を書いた(3人で共著)のでどういうなのか解説します。 5/8発売です。電子版もありますよ。Gihyo Digital PublishingだとPDFが手に入るので人気らしいです。 See Also 書籍『実践Rust入門』の詳細な目次です 目指したもの Rustの入門書といえば公式ドキュメントのThe Book、TRPLなどと呼ばれるThe Rust Programming Languageやその有志による和訳が一番に挙がるでしょう。 それ以外にもオライリーよりProgramming Rustやその和訳版も出ています。 どちらもRustについてよく書かれており、書の購入を検討されている方は上記2冊との違いが気になるかと思います。 書の大きな特徴は以下の2点です。 Rust 2018 Editionに対応している 実

    「実践Rust入門」を書いたよ | κeenのHappy Hacκing Blog
    love0hate
    love0hate 2019/04/24
  • async/awaitと合成可能性 | κeenのHappy Hacκing Blog

    κeenです。async/awaitって実装の都合と利便性の良い所取ってるよなーと常々思ってるのを言語化してインターネットに放流します。 何度か似たようなことを言ってるのですがスライドであることが多くてあまり情報量を詰め込めなかったのでブログにまとめます。 非同期処理と継続 非同期処理は時間のかかる処理を待ち合わせずに別の処理をし、時間のかかる処理が終わってから元の処理を継続する仕組みです。 let url = "http://example.com" let html = fetch url (* この結果を待たずに別の計算をする *) (* fetch urlが終わったあとでここに戻ってきて後続の処理をする *) print html 「継続」や「後続」などのキーワードが出てきているとおり、継続の影がチラチラ見えます。 継続とはいってもスレッドのようなタスク単位で分割したいのでフルの継

    async/awaitと合成可能性 | κeenのHappy Hacκing Blog
    love0hate
    love0hate 2019/02/10
    coroutineはnon-preemptive。coroutineはグリーンスレッドではない。goroutineはcoroutineとグリーンスレッドのいいとこ取り。coroutineは一般的にシステムコール(makecontext, CreateFiber etc.)で普通に実装できる。……と理解しているが。
  • QUICの中身が分からないから仕様読んでみた | κeenのHappy Hacκing Blog

    κeenです。先日同期と話しててQUICの中身ってあまり知らないよねってことでQUICの仕様(ドラフト)を読んだのでまとめますね。あまりまとめきれてませんが。 ※ドラフトは既に古くなっているのでこのブログの内容は現行では正しくない可能性があります。というか一部既に正しくないことが判明しています。ご注意下さい 後で新しいドラフトを発見したので内容を書き換えました。とりあえずリンクを貼ってあるドラフトの内容までは反映出来ています。 背景 仕様を読む前にQUICの背景から。 HTTP/2でHTTPにストリームという概念が入りました。 1つのコンテンツ毎に順にやりとりするのではなく、複数のコンテンツを並行して通信する仕組みです。 # 今まで []--CCCBBBAAA-->[] # HTTP/2 []--ACCBCABBA-->[] 上の図でいえば例えばAのコンテンツがサーバの都合で遅くてもBやC

    QUICの中身が分からないから仕様読んでみた | κeenのHappy Hacκing Blog
  • 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog

    κeenです。最近同期/非同期、ブロッキング/ノンブロッキング、直接形式/継続渡し形式あたりが混乱してきたので個人的に整理します。 あくまで私個人の理解を纏めただけなので誤謬などに注意して下さい。 追記: @tanaka_akrさんから指摘されたのですが、用語の説明が間違っていそうだったので書き直しました。 diffはこちら 非同期とノンブロッキングはよく混同されます。また、非同期処理の記述形式として直接形式や継続渡し形式などがあります。 私自身違う言葉だなとは思いつつも混同したり違いを忘れたりしています。 非同期もノンブロッキングもナイーブなIOに比べると速い方式だな程度の理解でいてそんなに困らないと思ってますし混同や誤用に目くじらを立てるつもりもありません。 しかしながら3者を区別しないと意味を成さない文脈で3者を混同している技術を何度か見掛けたので(自分の中で)整理しようと思ったのが

    非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
  • 1