Chinaunix

标题: 请教:pthread条件变量和互斥量是通过那些系统调用实现的? [打印本页]

作者: scklotz    时间: 2006-01-15 08:57
标题: 请教:pthread条件变量和互斥量是通过那些系统调用实现的?
条件变量和windows下的事件有和区别?
谢谢!
作者: richardhesidu    时间: 2006-01-15 09:49
不太清楚, 不过用strace跟踪程序运行就可以看出来了.
作者: julianzh    时间: 2006-01-15 17:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: eexplorer    时间: 2006-01-16 08:54
标题: 回复 1楼 scklotz 的帖子
在Linux里是通过sys_futex实现的
作者: scklotz    时间: 2006-01-16 09:08
在windows下,任何线程只要设置 Event 为有信号
任何线程包括自己都可以等待该事件的状态

但是好像linux下还要通过一个互斥量来访问信号量
而且这些操作有可能失败
比如等待时 pthread_mutex_lock  以及 pthread_mutex_timedwait

其中pthread_mutex_timedwait 会莫名其妙的返回

而且我也大概扫了一下glibc中互斥量和条件变量的实现代码,也没有找到显眼的系统调用的代码

不知各位linux高手如何处理错误的情况
就像windows下面处理Event那样
能够让程序健壮的运行?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2