Avatar
DispatchQueueはなんだかんだかなりたくさんスレッド作るんですよね
10:32 AM
run outするのはほんとに1000とかのOS(が割り当てたプロセスに対する)上限だと思います
10:32 AM
swift concurrencyは最初から強気に(CPUコアに応じた)8とかで固定してそうなので (edited)
10:33 AM
お行儀の悪いコードを書いたときに実際にスレッドが全部詰まる可能性があると思ってます
10:33 AM
そのへんの話は thread explosion って話があって
10:34 AM
Dispatch Queueのアプローチは、たとえ1000スレッドまでスケールしたとしても
10:34 AM
それはそれでthread explosion 問題があるんですよね
10:34 AM
物理的には4とか8でしか並列実行できないので、1000とかあると、スレッドにCPUを割り当てるためのスイッチングコストが無駄にかかりすぎる
10:34 AM
あとメモリもかなり食います(スレッドごとに数MBのスタックメモリ領域を事前確保するので) (edited)
10:35 AM
Swift concurrencyはthread explosionないように最適なスレッド数しか最初から用意しないよってWWDC動画でいってました