我遇到了一个需要无限循环的代码,他们使用了

    GMainLoop *mainloop = NULL;

    mainloop = g_main_loop_new (NULL, FALSE);
    g_main_loop_run (mainloop);

我怀疑他们为什么不出于相同目的使用while(true);。 GMainLoop内部执行什么操作,不是内部相同。 GMainLoop如何提高性能。

最佳答案

g_main_loop表示glib中的主事件循环。这不仅仅是一个无限循环;它轮询事件源,将其来源的事件排队,并调用事件处理程序。它也不是那么忙。也就是说,什么也没发生(除非事件源中断),它不会达到100%的CPU使用率。

the glib documentation中有对此的描述。

10-07 23:18