Я новичок в многопоточности. Я создал поток, который только запускает бесконечный цикл, он выполняет следующие функции:Нить работает бесконечный цикл: это нормальное поведение?
while (1)
{
__android_log_print(ANDROID_LOG_VERBOSE, "from thread3", "from thread3", 1);
}
То, что я не понимаю, почему мое приложение блокируется (т.е. других потоков спят), когда этот поток создано. Я имею в виду, что поток работает нормально (я вижу сообщения журнала), но похоже, что он предшествует моим двум другим потокам, поэтому они навсегда приостановлены. Разве планировщик не должен заботиться об этом и переключаться между потоками?
Подробнее: эта тема создана на стороне C++, используя std :: threads.
Почему я ниспровергаю? – hahaha1256
Планировщик не волшебник. В вашей узкой петле практически нет возможности для того, чтобы планировщик мог вмешаться и взять управление. И вы, вероятно, занижены, потому что * Этот вопрос не показывает никаких исследований и не является полезным * – rene
@rene на настольных компьютерах планировщик может сделать это просто отлично, используя таймерные прерывания. Если андроид использует совместную многозадачность (что имеет смысл), было бы неплохо найти ссылку, документирующую это. –