我遇到过他们需要无限循环的代码,他们使用了
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中有它的描述.
关于c++ - 在 C++ linux 中使用 glib.h 中的 GMainLoop 而不是 "while(true);"有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27396382/