select
文章平均质量分 77
yxnyxnyxnyxnyxn
男
展开
-
select
(1)阻塞block 所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。 例如socket编程中connect、accept、recv、recvfrom这样的阻塞程序。 再如绝大多数的函数调用、语句执行,严格来说,他们都是以阻塞方式执行的。 (2)非阻塞non-block转载 2013-05-24 14:09:22 · 798 阅读 · 0 评论 -
select
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2013-05-24 13:48:16 · 659 阅读 · 0 评论 -
用管道(pipe)使消息队列通知(mq_notify)可以在Select和poll中使用
这是在Unix网络编程第二卷进程间通信中看到的一个技巧。它使得posix消息队列的mq_notify可以在select中使用。具体方法为: 1、建立管道; 2、在主线程中用select监听管道的读事件; 3、在mq_notify的时间处理程序中往管道里写数据,通知主线程 只是不知道这样做,效率怎么样。 UNP-IPC有一段实例代码,如下: 1 #include "unpi转载 2013-05-26 16:04:40 · 2705 阅读 · 0 评论 -
select:windows pipe的模拟
在进行socket编程时,经常会采用select或epoll来接受并发请求。在有些系统里面(例如嵌入式设备),是不支持epoll的,这时只能用select。 Select定义如下: int select(int n, fd_set *rd_fds, fd_set *wr_fds, fd_set *ex_fds, struct timeval *timeout); 在进行select的时候,转载 2013-05-26 16:07:38 · 2080 阅读 · 0 评论