rebuildfm 53で話題になったRubyのスレッドに関係したつぶやき

16
fujiwara @fujiwara

複数プロセス上げてプロセス間通信面倒といっても、いずれ1台で捌けなくなればホスト間通信に問題が変わるだけだし……そこでローカルでもリモートでもchannelで同じように通信できるErlangが颯爽と

2014-08-08 23:18:35
wyukawa @wyukawa

よくわからないけど、スレッドがまともに動くのはJavaだけなのかな。まあマルチスレッドプログラミングは人類には早すぎるという指摘はおいといて。

2014-08-09 00:29:07
そのっつ (Naotoshi Seo) @sonots

rebuildfm で matz が GVL を外すためにシェアドナッシングなスレッドにする案がある、と言っていたけど、それは我々が欲しいものではない感ある #rebuildfm

2014-08-09 00:50:23
Yukihiro Matz @yukihiro_matz

@sonots ふむふむ。では本当に欲しいものはなんでしょうか? 細粒度ロックが必要なスレッド? #rebuildfm

2014-08-09 02:08:58
そのっつ (Naotoshi Seo) @sonots

@yukihiro_matz JRuby のスレッドのようなものが欲しいです!

2014-08-09 02:12:43
そのっつ (Naotoshi Seo) @sonots

GVLなくなった暁には、in_forward でデータ受け取ったらすぐスレッド切ってマルチスレッドでデータ処理するようにしないと有効活用にならない

2014-08-09 02:50:31
Sadayuki Furuhashi @frsyuki

@sonots @yukihiro_matz shared nothingなスレッドでも良いですが、加えてa)(Marshal可能なオブジェクトなら)best-effortでコピーなしで他のスレッドにコピーする(Stringだけは内部実装的に共有される)…とか、

2014-08-09 05:53:24
Sadayuki Furuhashi @frsyuki

@sonots @yukihiro_matz b)JavaのConcurrentHashMap<String,String>に相当するようなインタフェースを持つ、スレッド間で共有されたハッシュマップを用意できると、できることがかなり広がって嬉しいですね。

2014-08-09 05:54:33
Sadayuki Furuhashi @frsyuki

@sonots @yukihiro_matz b)は、本当はMap<String,Int>とか<String,Regexp>とかもあったら嬉しいけど、<String,String>があれば色々な最適化がスクリプト側でできる気がしました。 #rebuildfm

2014-08-09 05:56:45
Yukihiro Matz @yukihiro_matz

@sonots なるほど。理由を聞いてもいいですか? スレッドはトラブルを起こしやすいし、デバッグしにくいし、あまりよいことないように思うのですが。

2014-08-09 09:02:49
Yukihiro Matz @yukihiro_matz

@frsyuki @sonots 効率の良いチャネルってことですよね。その必要性は認識してます。

2014-08-09 10:47:06
Yukihiro Matz @yukihiro_matz

@miyagawa @sonots I consider goroutines (+ channels) as kind of actors. #rebuildfm

2014-08-09 10:50:41