我有两个线程,其中一个线程select 一个socket, 这个socket是我和外面通讯的接口,跑UDP协议。 另外一个socket是linux内部socket, 是socketpair创建的。是和其他子进程通讯的接口。 具体如下: switch(select(para.sock + 1, &fdR,NULL,NULL,&csel)){ case -1: if (errno == EINTR){ ah_dbg(info,"have a interrupt!\n"); ...
首先说下,filesort为什么不好。原因有二: 1. filesort会创建一个使用sort_buffer_size的线程,消耗额外缓存 2. filesort会额外进行数据读取。如果data_size大于max_length_for_sort_data,则需要多次读取。 You can read the filesort algorithm here. 如何避免? 举例!! 出现filesort!!! mysql> explain select * FROM ABCD WHERE a=1 AND b=1 ORDER BY c DESC, d ASC\G *************************** 1. row **...
如何将一个用户A建table1,table2,........多个表的select 的权限同时 授予给用户B, 不许用grant select any table to B。 只想让用户B可以select用户A所建的表 请问个位高手有什么办法? 谢谢。
是服务器的一端accept后得到新的描述符sd FD_ZERO(&wmask); FD_ZERO)&remask); FD_SET(sd,&remask); FD_SET(sd,&wmask); select(sd+1,&remask,&wmask,(fd_set *)0,NULL); 我要对sd 写消息。一旦对方关闭我也关掉他 if (FD_ISSET(sd,&wmask))printf("read\n"); if(FD_ISSET(sd,&remask))printf(write\n"); 程序运行后: 一旦有客户端上来就会打印:"write" 一旦客户端关掉就会打印:“read" ...
当一个连接成功时,有的新的连接来临,根本不可能返回到select的语句上了 [code] int x; while(1) { x = select() if(x){ accept; recv; } }[/code]
我使用ACE中的ACE_SOCK_Connector , 设置超时为3sec.
当连接数超过1155(概数)时, 就容易崩溃,
我用strace跟踪了一下,发现ACE中的select connect_fd这个句柄时, fd_set中多了好多, 按道理应该只有一个才对,
[code]
19934 10:48:29 <... socket resumed> ) = 1178
19934 10:48:29 fcntl64(1178, F_GETFL
例如select distinct id,name from table_name; 我只想选出id不重复的列。name不做比较。因为担心做比较的列比较多会影响效率。
select中的描述符集,感觉读描述符集经常作为socketfd的集合监听使用。至于读描述符集合,使用的时候很少。不知道各位兄弟有没有用到的时候~~