线程同步:
三种解决思路:
多路复用IO
解决多线程所带来的效率问题
1.select:
int select(int nfds(需要关心的文件描述符最大值+1),
fd_set *readfds(准备读的文件描述符集合),
fd_set *writefds(准备写的文件描述符集合),
fd_set *exceptfds(有异常的文件描述符集合), struct timeval *timeout);
poll:类似select
epoll:
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
int epoll_wait(int epfd, struct epoll_event *events,
int maxevents, int timeout);
int epoll_pwait(int epfd, struct epoll_event *events,
int maxevents, int timeout,
const sigset_t *sigmask);
linux 内核 可裁减
短连接: 客户端连接上来之后马上退出
长连接: 时间很长,不退出
线程池:
先把线程创建好 创建1000个线程 一只为客户端服务 解决短连接问题
本文探讨了线程同步中多路复用IO的三种实现方式:select、poll和epoll,以及它们如何解决多线程效率问题。同时,介绍了短连接和长连接的概念,以及线程池如何解决短连接带来的问题。
1225

被折叠的 条评论
为什么被折叠?



