Голодание потока происходит, когда поток не может регулярно получить доступ к общим ресурсам или процессорному времени, что не позволяет ему продвигаться к завершению.
В системе планирования на основе приоритетов планировщик выделяет процессорное время на основе уровней приоритета потоков. Потоки с более высоким приоритетом постоянно получают больше процессорного времени, чем потоки с более низким приоритетом.
Когда поток с низким приоритетом пытается выполнить ресурсоёмкие операции, ему может не хватить процессорных циклов для завершения своей задачи — потоки с более высоким приоритетом успевают монополизировать процессор раньше.
Голодающий поток остаётся:
Рассмотри систему, где:
В этом случае поток B будет испытывать голодание, потому что поток A постоянно получает управление первым, оставляя потоку B недостаточно процессорного времени.
Голодание потока — это проблема планирования, при которой распределение ресурсов сильно отдаёт предпочтение определённым потокам, фактически не давая остальным продвигаться в выполнении. Это отличается от дедлока — голодающие потоки могут в итоге получить управление, если потоки с более высоким приоритетом завершатся, однако задержки при этом могут быть неприемлемо большими.
Голодание потока происходит, когда поток полностью неспособен к выполнению когда-либо снова, подобно тому, как поток в состоянии deadlock не может прогрессировать.
Новый — ещё не проверен сообществом
Вы