【问题标题】:What is advantage of using GMainLoop from glib.h rather than "while(true);" in C++ linux?使用 glib.h 中的 GMainLoop 而不是“while(true);”有什么好处?在 C++ linux 中?
【发布时间】:2014-12-10 08:32:15
【问题描述】:

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

    GMainLoop *mainloop = NULL;

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

我怀疑他们为什么不将while(true); 用于相同目的。 GMainLoop 内部做什么,内部不一样。 GMainLoop 如何提升性能。

【问题讨论】:

    标签: c++ c linux glib


    【解决方案1】:

    g_main_loop 表示 glib 中的主事件循环。这不仅仅是一个无限循环;它轮询事件源,对从它们获取的事件进行排队,并调用事件处理程序。它也不会那么忙。也就是说,当什么都没有发生时(除非事件源被破坏),它不会达到 100% 的 CPU 使用率。

    the glib documentation中有描述。

    【讨论】:

      猜你喜欢
      • 2021-05-10
      • 2014-08-28
      • 2018-12-22
      • 2012-07-16
      • 2013-11-05
      • 2012-01-26
      • 1970-01-01
      • 2012-05-08
      • 2020-12-22
      相关资源
      最近更新 更多