Какова модель планирования для libdispatch (GCD)?
Какова модель планирования для блоков в libdispatch? Я понимаю, что есть разные очереди с разными приоритетами. Это так просто, как очередь с наивысшим приоритетом обслуживается первыми рабочими потоками?
Если это так, как избежать голодания в очередях с более низким приоритетом? Что происходит, когда поток блокируется?
Как блокируется ввод / вывод в рабочих потоках?
Как он узнает, сколько рабочих потоков должно порождаться, и порождает ли он больше для обработки нагрузки во время выполнения?
Как libdispatch сравнивается с чем-то вроде goroutines?