Linux - программно освобождает ваш процессор времени в пользовательском режиме - PullRequest
0 голосов
/ 28 сентября 2018

Что я хотел бы сделать, так это написать код, подобный следующему:

while(forever)
     {
     do something;
     relinquish current cpu time slice;
     }

Есть ли какой-нибудь вызов, который нужно сделать в Linux, который просто завершает ваш временной интервал, чтобы цикл навсегда не зависалвесь процессорный поток?Я уверен, что вы можете сделать другой системный вызов или что-то в этом роде, но это может вызвать ненужную работу ядра / пользовательского ЦП. Я просто хочу сказать, что с моим временным интервалом и перепланировкой все сделано.

Этот тип вызова также может бытьочень приятно в реальном времени.

1 Ответ

0 голосов
/ 28 сентября 2018

Системный вызов sched_yield(2) делает именно то, что вы хотите.Просто #include <sched.h> и позвоните sched_yield();.

...