摘要: ###线程 进程模型在处理用户请求的过程中,进程切换上下文的代价比较高,而,一种轻量级的模型可以处理多用户连接请求,那就是线程模型。 线程(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) 编辑