Проще говоря,
Статическое планирование - это механизм, в котором мы уже контролировали порядок / способ выполнения потоков / процессов в нашем коде (время компиляции). Если вы использовали какой-либо элемент управления (блокировки, семафоры, соединения, спящие) по потокам в вашей программе (для достижения определенной цели), вы планируете использовать статическое время (время компиляции).
Динамическое планирование - это механизм, в котором планирование потоков выполняется операционными системами на основе любого алгоритма планирования, реализованного на уровне ОС. Таким образом, порядок выполнения потоков будет полностью зависеть от этого алгоритма, если мы не поставим на него некоторый контроль (со статическим планированием).
Я думаю, что термин «преимущества» не будет лучшим термином здесь. Просто, когда вы реализуете какой-либо контроль над потоками с вашим кодом для достижения какой-либо задачи, вы должны убедиться, что вы использовали минимальные элементы управления, а также наиболее оптимизированным образом. :))
Дополнение:
Сравнение между статическим и динамическим планированием
Как правило, у нас никогда не было бы компьютерной программы, которая полностью зависела бы только от одного из статических или динамических расписаний .
Вместо этого у нас были бы некоторые программы, которые в значительной степени контролируются самим кодом (сильно статическим). Это было бы хорошим примером для этого.
И некоторые программы будут сильно динамическими (слабо статическими). Это было бы хорошим примером для этого. Там вы можете увидеть, кроме начала двух потоков, остальная часть выполнения программы будет бесплатным флаером.
Пожалуйста, не пытайтесь найти критерии отказа, которые запечатывают программу либо сильно статической, либо сильно динамичной. :))
Положительные и отрицательные
-
Расписание динамического планирования выполняется быстрее, чем статическое планирование, поскольку это, в основном, бесплатный флаер без каких-либо преднамеренных ожиданий, объединений и т. Д. (Любой вид синхронизации / защиты между потоками).
-
Динамическое планирование является не известно о какой - либо зависимости резьбы (безопасность, синхронизация и т.д.). Если бы вы следовали выше упомянутым выше источникам, у вас, вероятно, была бы идея.
-
Как правило, насколько хорош многопоточный программист, вы будете зависеть от того, насколько ограничены ограничения, зависимости, узкие места, которые вы реализовали в своих потоках, еще для успешного выполнения своей задачи. :))
Я думаю, что у меня есть достаточно вещей. Пожалуйста, поднимите мне вопросы, если они есть. :))