02 2017 档案
摘要:5种I/O模型: 1.阻塞I/O 2.非阻塞I/O 3.异步I/O 4.信号驱动I/O 5.I/O复用 信号驱动和异步驱动的区别 信号驱动IO是指:进程预先告知内核,使得 当某个socketfd有events(事件)发生时,内核使用信号通知相关进程。 异步IO(Asynchronous IO)是指:
阅读全文
摘要:有两个信号可以停止进程:SIGTERM和SIGKILL。SIGTERM比较友好,进程能捕捉这个信号( it can be caught and interpreted (or ignored) by the process),根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在
阅读全文
摘要:epoll是I/O复用模型中相对epoll和select更高效的实现对套接字管理的函数。 epoll有两种模式 LT 和 ET 二者的差异在于 level-trigger 模式下只要某个 socket 处于 readable/writable 状态,无论什么时候进行 epoll_wait 都会返回该
阅读全文
摘要:我们所使用的I/O模型一共有五种。 分别为阻塞I/O,非阻塞I/O,I/O复用,信号驱动I/O,异步I/O。 所谓I/O复用就是指管理多个I/O文件描述符,一般会使用(select,poll,epoll)3个函数中的一个来实现I/O复用。 下面就介绍一下其中的select int select(in
阅读全文
摘要:前段时间学习了线程方面的知识,看了关于线程池的教程,自己也试着实现一个。跟大家分享,同时也整理整理思路。 对线程池的要求: 1.用于处理大量短暂的任务。 2.动态增加线程,直到达到最大允许的线程数量。 3.动态销毁线程。 线程池的实现类似于”消费者--生产者”模型: 用一个队列存放任务(仓库,缓存)
阅读全文