操作系统
algo▪Tempest
一天亿点,法力无边
展开
-
epoll的api介绍
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的水平...原创 2020-04-14 17:03:08 · 871 阅读 · 0 评论 -
使用poll实现echo服务器
#define POLLSIZE 100 #define BUFFERSIZE 512 char ch_char(char c) { if(c >= 'a' && c <= 'z') return c - 32; return c; } int main(int argc, char **argv){ if(argc != 2) {...原创 2020-04-14 16:48:02 · 159 阅读 · 0 评论 -
select实现echo服务器
#include <stdio.h> #define CLIENTSIZE 50 #define BUFFERSIZE 512 char ch_char(char c) { if(c >= 'a' && c <= 'z') return c - 32; return c; } int main(int argc, char *...原创 2020-04-14 15:45:48 · 256 阅读 · 0 评论 -
select实现socket_connect_timeout
int socket_connect_timeout(char *host, int port, long timeout){ int sockfd; struct sockaddr_in server; server.sin_family = AF_INTE; server.sin_port = htons(port); server.sin_addr.s_addr = ...原创 2020-04-14 15:16:02 · 273 阅读 · 0 评论 -
select、poll、epoll的区别
select、poll、epoll简介 epoll跟select都能提供多路I/O复用的解决方案。在现在的Linux内核里都能够支持,其中epoll是Linux所特有,而select则应该是POSIX所规定,一般操作系统均有实现。 select: select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是: 1、 单个进程可监视的fd数量被限制,即能监听端口的...原创 2020-04-12 07:50:37 · 115 阅读 · 0 评论 -
select监听socket的connect编程实现
// // Created by xx on 2020/4/10. // #include "mySocketConnectTimeOut.h" int socket_connect_timeout(char *ip, int port){ int sock_fd; struct sockaddr_in server; server.sin_family = AF_I...原创 2020-04-10 19:21:06 · 478 阅读 · 0 评论 -
操作系统之生产者-消费者
class Resources{ private int count = 0; public synchronized void produce() { if(count < 20) { count++; System.out.println(Thread.currentThread().getName() ...原创 2020-04-05 09:35:36 · 113 阅读 · 0 评论