![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Jeson_Yang
佛系码农
展开
-
socket阻塞与非阻塞,同步与异步、I/O模型 .
在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回转载 2014-06-27 00:29:21 · 805 阅读 · 0 评论 -
C++map遍历删除数据(删除被2整除的键值对)
C++遍历删除数据时 调用erase函数时原创 2015-11-18 00:15:30 · 2754 阅读 · 0 评论 -
C++虚表的实现原理(windows & linux上)
当大家被问到C++多态是怎么实现的时候,一般也就想到了虚函数吧,进一步也就是想到了与其关联的虚表指针,那我们就该想想这个虚表到底是怎么做到的呢。/*author: Jeson Yang date: 2015.11.21 file: ****.cpp*/#include using namespace std;#define __stdcallclass CBase{publ原创 2015-11-21 20:21:27 · 751 阅读 · 0 评论 -
C/C++解析 HTML
首先我想感谢HMM7E,原创 2014-07-23 15:44:58 · 11580 阅读 · 8 评论 -
C++四种强制类型转换
ANSI-C++标准定义了四个新的转换符:'reinterpret_cast', 'static_cast', 'dynamic_cast' 和 'const_cast',目的在于控制类(class)之间的类型转换。代码:reinterpret_cast(expression)dynamic_cast(expression)static_cast(expression)const_原创 2014-12-16 22:44:37 · 496 阅读 · 0 评论 -
const在变量前后,函数后的含义(C++)
int me; const int * p1=&me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向 int * const p2=&me;//p2不可变,*p2可变,此时允许*p2来修改其值,但是p2不能转向。 const int *const p3=&me;//p3不可变,*p3也不可变,此时既不能用*p3来修改其值,也不能转向 const 放在函原创 2014-12-16 21:16:52 · 2053 阅读 · 0 评论 -
IOCP模型总结(总结回顾)
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销原创 2014-06-28 12:14:54 · 1191 阅读 · 2 评论 -
非阻塞,et模型 epoll
#include #include #include #include #include #include #include #include #include #include #define MAX_EVENTS 100#define MAX_BUFFER_SIZE 10/*设置非阻塞*/int setNonBlock(int fd){ int old_f原创 2016-11-29 20:21:57 · 416 阅读 · 0 评论