HackerNews

Racket v9.0における並行スレッド

Parallel Threads in Racket v9.0

https://blog.racket-lang.org/2025/11/parallel-threads.html


Racket v9.0では、マルチコアハードウェアとオペレーティングシステムのスレッドを活用して並行してではなく、実際に並行に実行できる共有メモリスレッドのサポートが追加されました。新しいスレッドを作成するのは簡単で、スレッド呼び出しにフラグを追加するだけです。コード例として、スレッドを並行に実行する場合、#:pool ' ownオプションを追加することで、CPUのコアを効果的に使用できます。これにより、並行スレッドの実行が速くなることが実証されています。また、#:keep ' resultオプションを使用すると、スレッドの結果を保持することができ、結果を取得するためにはthread-waitを使います。従来のコルーチンスレッドとの互換性も保たれており、GUI操作やリモートプロセスのオーケストレーションにおいては、コルーチンスレッドの方が依然として適しているとされています。RacketのスレッドAPIは、並行スレッドと完全に連携し、パフォーマンスの詳細についても今後説明されます。