当前位置:  技术问答>linux和unix

GTK使用空闲处理函数解决线程同步时出现的一个诡异现象

    来源: 互联网  发布时间:2016-08-10

    本文导语:  //在关联界面事件时设置空闲处理函数 gtk_idle_add( (GtkFunction) func_idle,NULL); //初始化互斥量 pthread_mutex_t netlink_queue_mutex = PTHREAD_MUTEX_INITIALIZER; //空闲处理函数 void func_idle() {  printf("aaaaaaaaaaan");  pthread_mutex_lock(&netlink_...

//在关联界面事件时设置空闲处理函数
gtk_idle_add( (GtkFunction) func_idle,NULL);
//初始化互斥量
pthread_mutex_t netlink_queue_mutex = PTHREAD_MUTEX_INITIALIZER;

//空闲处理函数
void func_idle()
{
 printf("aaaaaaaaaaan");
 pthread_mutex_lock(&netlink_queue_mutex);
 //do_something
 pthread_mutex_unlock(&netlink_queue_mutex);
 printf("bbbbbbbbbbbn");
}

诡异现象:
如此,可以正常执行,
但是,若屏蔽printf("bbbbbbbbbbbn");
空闲处理函数就只能执行一次,能正常退出,不阻塞其他界面事件的处理
请问各位高手,这是为何?

|
还有,一定要有return true or false,我的代码

gboolean func_idle()
{
printf("aaaaaaaaaaa%dn",flag);
pthread_mutex_lock(&netlink_queue_mutex);
g_usleep(1000);
flag++;
pthread_mutex_unlock(&netlink_queue_mutex);
// g_print("bbbbbbbbbbb%dn",flag);
// if(flag>10)
// return false;
return true;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于gtk的目录问题,我的目录是 gtk-2.0/gtk/gtk.h ??
  • Redhat linux9.0 下Gtk+编程的#include <gtk/gtk.h>问题
  • 【重要】gtk+ 编译gtk+的问题,不同于一般gtk的搭建--1000分,问题解决了,开号给分,决不食言!大家都来看看
  • gtk 和 gtk+ 有什么区别?
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • 我使用GTK+2.0写界面程序时,怎么找不到gtk.h文件?
  • GTK+ gtk_tree问题
  • gtk for win 和 gtk for linux 下的程序问题?
  • GTK窗口前端显示及GTK窗口闪烁
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 【GTK】GTK中有没有这个widget?
  • 我想学习GTK+2.0,请问如何准备GTK编程环境???
  • [GTK] gtk最小化问题与恢复问题
  • 【gtk+】初学gtk+,请教一个问题
  • 【gtk】关于gtk布局问题
  • 本人刚学gtk编程,留下油箱,欢迎喜欢gtk编程的朋友和我交流啊!!!!
  • 大家好,想知道gtk与gtk+有什么区别?
  • 关于GTK中gtk_widget_hide()的问题
  • gtk中如何获取gtk_text_view中的输入内容?
  • GTK+中类似gtk_hbox_new这样的给构件分配内存的函数 为什么不用手动释放?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3