Avatar
When designing tasks for concurrent execution, do not call methods that block the current thread of execution. When a task scheduled by a concurrent dispatch queue blocks a thread, the system creates additional threads to run other queued concurrent tasks. If too many tasks block, the system may run out of threads for your app.
10:22 AM
1文目「現在のスレッドの実行をブロックするメソッドを呼ぶな」って書いてある・・・?
10:22 AM
2文目のほうが実感としてはあって、DispatchQueueシステムは、詰まってたら新しいスレッド立ち上げてでも並列実行するんですよね。(ので、現実的な実感としては詰まりは遭遇しない (edited)
10:23 AM
ただ3文目で言ってるのは、スレッドを使い果たす(run out)可能性がある、という事で、そうすると同じですね。
10:25 AM
DispatchQueueでもスレッド生成による並列化は上限があるからブロッキングが長い処理を大量に発行したら、全部の処理用のスレッドが止まっちゃって、短い処理も進まない状況が生じるのかも (edited)