タグ

2014年2月12日のブックマーク (3件)

  • goroutineがスイッチされるタイミング - Qiita

    goroutineがスイッチされるタイミングについて調べていました。 結論 Go言語で、goroutineは 必ずしも スイッチされるわけではない。 スタックに触れないような、「for(){}」みたいなビジーループをGOMAXPROCSの指定数以上に含ませるとスイッチされなくなる。 goroutineがスイッチされる(主な)条件はこれらと思われる。 - goroutineの関数が最適化でinline化されていない - スタックを操作するような処理を行った - (その他の契機もあるようなので「経緯」で書く) 経緯 処理のないビジーループが有ると、goroutineがスイッチされず処理が止まることに気づきました。 # 処理の中身を全部コメントアウトしてデバッグしていたら気づいた package main func busy() { for { } } func main() { go busy

    goroutineがスイッチされるタイミング - Qiita
    kyab
    kyab 2014/02/12
    goroutineでビジーループを書いた場合とコンテキストスイッチ発生のタイミング。
  • Nobody understands the GIL

    Nobody understands the GIL Published on June 12, 2013 by Jesse Storimer Throughout most of my time in the Ruby community, MRI's infamous GIL has been an elusive creature for me. This is a story about thread safety, and finally catching that elusive creature to get a good look at it. The first time I heard mention of the GIL, it had nothing to do with how it worked, what it did, or why it existed.

    kyab
    kyab 2014/02/12
    YARVのGVL(GIL)実装。タイマースレッドが動いててビジーループしてもたまにGVL解放されるとか
  • Jose Valim、Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。~ RubyKaigi 2013 基調講演 2日目 | gihyo.jp

    RubyKaigi 2013 レポート Jose Valim、Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。~ RubyKaigi 2013 基調講演 2日目 2013年5月30日~6月1日の3日間、お台場にある東京国際交流館にてRubyKaigi 2013が開催されています。基調講演をそれぞれレポートします。 2日目の基調講演の演者はJose Valimです。司会の角谷さんにより「再起動したRubyKaigiの基調講演に最もふさわしい人物の一人」と紹介をされたJoseは、Rubyにおける並行プログラミングの可能性について話しました。 自己紹介 Joseは、2006年からRubyを書き始めたそうです。それからOSSにも深く関わっており、2010年からRails coreチームにジョインしています。そして、Elixirという言語の作者でもあります。ElixirはErla

    Jose Valim、Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。~ RubyKaigi 2013 基調講演 2日目 | gihyo.jp
    kyab
    kyab 2014/02/12
    RubyKaigi2013での提言。これ重要だと思うんだけどその後あまり語られてないなぁ。みんなElixirやってんのかな?