Как мой частный проект, я работаю на сервере веб-приложений, который состоит из libuv и интерпретатора Scheme, поэтому он работает как версия Node.js. для Scheme.
В моей текущей реализации простояОбработчик вызывает функцию, которая обновляет состояние интерпретатора Scheme.В коде схемы все функции блокировки, такие как запрос к базе данных, вызываются в отдельном потоке, поэтому эта функция обновления никогда не должна блокироваться.
Это выглядит работающим.Но когда я запускаю этот сервер, загрузка процессора достигает 100%, а охлаждающий вентилятор очень раздражает.
Чтобы уменьшить нагрузку на процессор, я добавил usleep(1000);
в конец обработчика простоя.Это приемлемо для libuv?Или не должен ли обработчик простоя содержать блокирующие вызовы?