上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 42 下一页
摘要: ###引入 看个例子: // array表示一个长度为n的数组 // 代码中的array.length就等于n int[] array = new int[n]; int count = 0; void insert(int val) { if (count == array.length) { i 阅读全文
posted @ 2022-04-16 21:28 牛犁heart 阅读(103) 评论(0) 推荐(0)
摘要: ###buffer对象 buffer对象:顾名思义,就是一个缓冲区对象,缓存了从套接字接收来的数据以及需要发往套接字的数据。 如果是从套接字接受来的数据,事件处理回调函数在不断地往buffer对象增加数据,同时,应用程序需要不断把buffer对象中的数据处理掉,这样,buffer对象才可以空出新的位 阅读全文
posted @ 2022-04-09 22:22 牛犁heart 阅读(159) 评论(0) 推荐(0)
摘要: ###多线程设计的几个考虑 在反应堆reactor框架设计中,main reactor线程是一个acceptor线程,这个线程一旦创建,会以event_loop形式阻塞在event_dispatcher的dispatch方法上,实际上它是在等待监听套接字上的事件发生,即已完成的连接,一旦有连接完成, 阅读全文
posted @ 2022-04-09 22:01 牛犁heart 阅读(201) 评论(0) 推荐(0)
摘要: https://app.yinxiang.com/fx/7e601cad-6501-4fe7-8e4e-f0fbd9d02c4b TCP 高性能网络框架需要满足的需求有以下三点: 1)采用 reactor 模型,可以灵活使用 poll/epoll 作为事件分发实现。 2)必须支持多线程,从而可以支持 阅读全文
posted @ 2022-04-09 19:14 牛犁heart 阅读(387) 评论(0) 推荐(0)
摘要: 转载:bool型返回值函数,没写return语句的时候返回啥? 因为漏写了一个return语句,g++又没开warning,结果就悲剧了,调用的时候出现了奇怪的现象,于是就测试了一把到底没写return的时候返回什么东西。 #include <iostream> #include <vector> 阅读全文
posted @ 2022-04-09 17:11 牛犁heart 阅读(1469) 评论(0) 推荐(0)
摘要: ###事件驱动模型 事件驱动的好处:占用资源少,效率高,可扩展性强,是支持高性能高并发的不二之选。 事件驱动模型也叫作反应堆模型(reactor),或者是Event loop模型,该模型的核心有两点: 1、它存在一个无限循环的事件分发线程,或者叫做reactor线程、Event loop线程。这个事 阅读全文
posted @ 2022-04-05 21:13 牛犁heart 阅读(160) 评论(0) 推荐(0)
摘要: ###线程 进程模型在处理用户请求的过程中,进程切换上下文的代价比较高,而,一种轻量级的模型可以处理多用户连接请求,那就是线程模型。 线程(thread)是运行在进程中的一个“逻辑流”,现代操作系统都允许在单进程中运行多个线程。**线程由操作系统内核管理。**每个线程都有自己的上下文(context 阅读全文
posted @ 2022-03-27 23:38 牛犁heart 阅读(134) 评论(0) 推荐(0)
摘要: ###父进程和子进程 进程是程序执行的最小单位,一个进程有完整的地址空间、程序计数器等,如果想创建一个新的进程,使用函数 fork 就可以 pid_t fork(void) 返回:在子进程中为0,在父进程中为子进程ID,若出错则为-1 fork函数实现的时候,实际上会把当前父进程的所有相关值都克隆一 阅读全文
posted @ 2022-03-27 16:49 牛犁heart 阅读(71) 评论(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 阅读(204) 评论(0) 推荐(0)
摘要: ###原理 select 的几个缺点: 1)每次调用select,都需要把fd集合从用户空间拷贝到内核空间,这个开销在fd很多时会很大 2)每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也会很大 3)select支持的文件描述符数量太小了,默认是1024 在调用接口上, 阅读全文
posted @ 2022-03-27 11:09 牛犁heart 阅读(794) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 42 下一页