上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 41 下一页
摘要: 转载:bool型返回值函数,没写return语句的时候返回啥? 因为漏写了一个return语句,g++又没开warning,结果就悲剧了,调用的时候出现了奇怪的现象,于是就测试了一把到底没写return的时候返回什么东西。 #include <iostream> #include <vector> 阅读全文
posted @ 2022-04-09 17:11 牛犁heart 阅读(1323) 评论(0) 推荐(0) 编辑
摘要: ###事件驱动模型 事件驱动的好处:占用资源少,效率高,可扩展性强,是支持高性能高并发的不二之选。 事件驱动模型也叫作反应堆模型(reactor),或者是Event loop模型,该模型的核心有两点: 1、它存在一个无限循环的事件分发线程,或者叫做reactor线程、Event loop线程。这个事 阅读全文
posted @ 2022-04-05 21:13 牛犁heart 阅读(139) 评论(0) 推荐(0) 编辑
摘要: ###线程 进程模型在处理用户请求的过程中,进程切换上下文的代价比较高,而,一种轻量级的模型可以处理多用户连接请求,那就是线程模型。 线程(thread)是运行在进程中的一个“逻辑流”,现代操作系统都允许在单进程中运行多个线程。**线程由操作系统内核管理。**每个线程都有自己的上下文(context 阅读全文
posted @ 2022-03-27 23:38 牛犁heart 阅读(117) 评论(0) 推荐(0) 编辑
摘要: ###父进程和子进程 进程是程序执行的最小单位,一个进程有完整的地址空间、程序计数器等,如果想创建一个新的进程,使用函数 fork 就可以 pid_t fork(void) 返回:在子进程中为0,在父进程中为子进程ID,若出错则为-1 fork函数实现的时候,实际上会把当前父进程的所有相关值都克隆一 阅读全文
posted @ 2022-03-27 16:49 牛犁heart 阅读(52) 评论(0) 推荐(0) 编辑
摘要: ###C10K问题 C10K问题就是如何一台物理机上同时服务10000个用户?C代表并发,10K就是10000 C10K 问题是由一个叫 Dan Kegel 的工程师提出并总结归纳的,你可以通过访问http://www.kegel.com/c10k.html获取最新相关信息 ###操作系统层面 C1 阅读全文
posted @ 2022-03-27 14:51 牛犁heart 阅读(164) 评论(0) 推荐(0) 编辑
摘要: ###原理 select 的几个缺点: 1)每次调用select,都需要把fd集合从用户空间拷贝到内核空间,这个开销在fd很多时会很大 2)每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也会很大 3)select支持的文件描述符数量太小了,默认是1024 在调用接口上, 阅读全文
posted @ 2022-03-27 11:09 牛犁heart 阅读(745) 评论(0) 推荐(0) 编辑
摘要: ###阻塞VS非阻塞 阻塞I/O:应用程序会被挂起,等待内核完成操作,实际上,内核所做的事情是将CPU时间切换给其他有需要的进程,网络应用程序在这种情况下是得不到CPU时间做该做的事情的。 非阻塞I/O:当应用程序调用非阻塞I/O完成某个操作,内核立即返回,不会把CPU时间切换给某个其他进程,应用程 阅读全文
posted @ 2022-03-24 00:36 牛犁heart 阅读(672) 评论(0) 推荐(0) 编辑
摘要: ###原理 和select类似,只是描述fd集合的方式不同,poll使用pollfd结构而非select的fd_set结构。 管理多个描述符也是进行轮询,根据描述符的状态进行处理,但poll没有最大文件描述符数量的限制。 ####select 和poll的区别 select采用的是位掩码的模型,参考 阅读全文
posted @ 2022-03-20 22:34 牛犁heart 阅读(400) 评论(0) 推荐(0) 编辑
摘要: ###原理:参考:https://my.oschina.net/fileoptions/blog/911091 select中内核函数有哪些 源码实现: #undef __NFDBITS #define __NFDBITS (8 * sizeof(unsigned long)) #undef __F 阅读全文
posted @ 2022-03-20 20:50 牛犁heart 阅读(287) 评论(0) 推荐(0) 编辑
摘要: ###要求: 写一个客户端程序和服务器程序,客户端程序连接上服务器之后,通过敲命令和服务器进行交互,支持的交互命令包括: pwd:显示服务器应用程序启动时的当前路径。 cd:改变服务器应用程序的当前路径。 ls:显示服务器应用程序当前路径下的文件列表。 quit:客户端进程退出,但是服务器端不能退出 阅读全文
posted @ 2022-03-20 11:18 牛犁heart 阅读(379) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 41 下一页