Какова модель планирования для libdispatch (GCD)?

Какова модель планирования для блоков в libdispatch? Я понимаю, что есть разные очереди с разными приоритетами. Это так просто, как очередь с наивысшим приоритетом обслуживается первыми рабочими потоками?

Если это так, как избежать голодания в очередях с более низким приоритетом? Что происходит, когда поток блокируется?

Как блокируется ввод / вывод в рабочих потоках?

Как он узнает, сколько рабочих потоков должно порождаться, и порождает ли он больше для обработки нагрузки во время выполнения?

Как libdispatch сравнивается с чем-то вроде goroutines?

0 ответов

Другие вопросы по тегам