linux下面如何让线程等待多个事件?
rt
使用I/O多路转接,select/poll/epoll。
首先,你所说的事件是什么?是signal还是condition
如果是signal,因为线程有别于进程,所以可以这样做。在线程内设置信号屏蔽位,将期望处理的信号位放
开,其余的block,然后再关联信号处理程序。
如果是condition,那就在线程里需要这个condition的时候直接pthread_cond_wait,等到condition满足的
时候再继续向下执行
而你说的多个事件,和以上的处理方法差不多,但是还是要先去分是哪种。这两种可是完全不同的机制
看你对事件的定义是什么?
1、如果是定时、网络或文件I/O事件,可以通过select/poll/epoll来解决。
2、如果是异步磁盘I/O事件,可以通过AIO来解决。
3、如果是信号和条件,可以通过设置信号处理函数和pthread_cond_wait来处理。
相关问答:
有什么好的Linux教程吗?
小弟谢过~
[问题点数:0分]
google
据说鸟哥的私房菜不错。
鸟哥的Linux私房菜
更多的再这上面去搜索一下很LIUNX书籍还不错
引用
google
正解
鸟哥的Linux私房菜 ......
我用RPM报安装了一个老版本的JRE,后来想装新版本的,
不过,我把/usr/java目录直接给删了,
后再安装的时候,总是提示版本冲突,
而且我用RPM包卸载时也找不到文件了。
我对LINUX不熟悉,希望高手帮忙。
http: ......
两个文件1.PC,1.inc
1.PC有操作oracle数据库的 ,1.inc也有操作oracle数据库
在其他数据中如informix 中$include 1.inc就可以使用了
在ORACLE数据库重 $include 1.inc不可用 EXEC SQL include 1.inc也不可 ......
那位大虾在linux下用命令行刻录过DVD的,指点一下。
我现在要在Fedora11下用命令行(不要用界面方式)进行刻录DVD盘,刻录的内容是一般数据。要求刻录的格式为UDF格式。请问谁能给一个清
晰的指导建议不?先 ......
在LINUX裏安裝 CURL 時,出現如下報錯
checking for SSL support in libcurl... no
checking for curl_easy_perform in -lcurl... no
configure: error: There is something ......