タグ

threadとrubyに関するpoginのブックマーク (2)

  • M:Nスレッドによる軽量な並行処理への挑戦 | gihyo.jp

    STORES株式会社でRubyインタプリタ開発をしている笹田です。お正月に新年早々おでんを腐らせてしまったので、今年は作ったらさっさとべることを目標にしたいと思います。 この記事では、主に私が開発している、Ruby 3.3で導入されたM:Nスレッドについて紹介します。 M:Nスレッドはスレッドの性能向上のために導入されました。M個(大きな数)のRubyスレッドをN個(十分小さい数)のネイティブスレッドだけで実行するというモデルで、スレッド管理のオーバヘッドを抑えられる方法として知られており、ほかにもGo言語などで利用されています。今後、大量のネットワーク接続を処理するといったことをRubyで記述することを検討したい場面が出てくるしれません。そのようなときにRubyでスイスイとプログラムが書ければいいなと思っており、その一貫です。最終的には、Ractorを用いた軽量な並列・並行アプリケーシ

    M:Nスレッドによる軽量な並行処理への挑戦 | gihyo.jp
  • Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ

    技術部の笹田です。今日で退職するので、バタバタと返却などの準備をしています。 記事では、Rubyの並行並列処理の改善についての私の取り組みについて、おもに RubyKaigi 20222023 で発表した内容をもとにご紹介します。 並行と並列はよく似た言葉ですが、記事では次のような意味で使います。 並行処理(concurrent processing)は、「複数の独立した実行単位が、待っていればいつか終わる(もしくは、処理が進む)」という論理的な概念で、古典的にはタイムシェアリングシステムなどが挙げられます。 並列処理(parallel processing)は、「複数の独立した実行単位のうちのいくつかが、あるタイミングで同時に動いている」という物理的な概念で、古典的には複数のCPU上で同時に実行させる、というものです。最近では、1つのCPU上で複数コアが同時に動いている、という

    Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ
  • 1