<div class="chatlog__message-group"> <div id="chatlog__message-container-1073911587104096296" class="chatlog__message-container" data-message-id="1073911587104096296"> <div class="chatlog__message"> <div class="chatlog__message-aside"><img class="chatlog__avatar" src="https://cdn.discordapp.com/avatars/189711109966659584/95280765d1be73ce985dce15ea3585f6.png?size=512" alt="Avatar" loading="lazy"></div> <div class="chatlog__message-primary"> <div class="chatlog__header"><span class="chatlog__author" style="color:rgb(237,171,161)" title="omochimetaru" data-user-id="189711109966659584">omochimetaru</span> <a href="/channels/306995750418513920?category=main&channel=swift-2&message_id=1073912566180483103"><span class="chatlog__timestamp" title="Saturday, February 11, 2023 10:21 AM"></span></a><a href="#chatlog__message-container-1073911587104096296">2/11/2023 10:21 AM</a></div> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve"> <div class="chatlog__markdown-quote"> <div class="chatlog__markdown-quote-border"></div> <div class="chatlog__markdown-quote-content">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.</div> </div> </span></div> </div> </div> </div> <div id="chatlog__message-container-1073911853882802226" class="chatlog__message-container" data-message-id="1073911853882802226"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Saturday, February 11, 2023 10:22 AM">10:22 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">1文目「現在のスレッドの実行をブロックするメソッドを呼ぶな」って書いてある・・・?</span></div> </div> </div> </div> <div id="chatlog__message-container-1073912007197200384" class="chatlog__message-container" data-message-id="1073912007197200384"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Saturday, February 11, 2023 10:22 AM">10:22 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">2文目のほうが実感としてはあって、DispatchQueueシステムは、詰まってたら新しいスレッド立ち上げてでも並列実行するんですよね。(ので、現実的な実感としては詰まりは遭遇しない</span> <span class="chatlog__edited-timestamp" title="Saturday, February 11, 2023 10:26 AM">(edited)</span></div> </div> </div> </div> <div id="chatlog__message-container-1073912228027302008" class="chatlog__message-container" data-message-id="1073912228027302008"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Saturday, February 11, 2023 10:23 AM">10:23 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">ただ3文目で言ってるのは、スレッドを使い果たす(run out)可能性がある、という事で、そうすると同じですね。</span></div> </div> </div> </div> <div id="chatlog__message-container-1073912566180483103" class="chatlog__message-container" data-message-id="1073912566180483103"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Saturday, February 11, 2023 10:25 AM">10:25 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">DispatchQueueでもスレッド生成による並列化は上限があるからブロッキングが長い処理を大量に発行したら、全部の処理用のスレッドが止まっちゃって、短い処理も進まない状況が生じるのかも</span> <span class="chatlog__edited-timestamp" title="Saturday, February 11, 2023 10:25 AM">(edited)</span></div> </div> </div> </div> </div>