自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Windows IO模型-WSAEventSelect模型(异步阻塞模型)

事件选择(WSAEventSelect)模型:基于事件通知,事件是一个有操作系统管理的内核对象,当前系统基于事件机制,该模型则可以使用,事件两种状态,有信号和无信号,检测事件,若有信号则进行相应处理。参考博客:http://www.cnblogs.com/venow/archive/2012/06/12/2543065.html 缺点:(1)不能同时处理多个Socket,有数量限制。要么W

2017-09-08 13:44:54 2008

原创 Windows IO模型-WSAAsynSelect模型(异步阻塞模型)

WSAAsyncSelect-异步选择模型(异步阻塞模型)异步选择(WSAAsyncSelect)模型:属于被动通知,基于消息机制,需要向Windows注册消息,当对应的网络事件发生时,向指定窗口发送指定消息。缺点:(1)消息不安全,而且会慢,消息的过程比较复杂。(2)基于窗口,必须要有窗口,所以平台有限制。  1、向windows注册网络事件█ WSAAsyncSelect

2017-09-08 13:40:41 1228

原创 Windows IO模型-Select模型(同步阻塞模型)

参考博客:http://zxxapple.iteye.com/blog/1554692    套接字Select阻塞和非阻塞的区别在于:进程访问数据时,数据未就绪,进行是否需要等待。阻塞:进程等到有结果再返回,函数返回。非阻塞:请求完立即返回,不论是否接收到数据。异步和同步的区别在于:主动查看还是被动通知的区别,访问数据的机制不同。同步:主动请求,并等待I\O操作完毕,当数据读写时阻塞。异

2017-09-07 20:42:44 1674

原创 Linux复用I/O-epoll-server代码

参考博客:http://www.cnblogs.com/Anker/p/3265058.htmlselect-poll-epollselect的几大缺点:(1)每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大(2)同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大(3)select

2017-08-31 11:11:25 464

原创 Linux复用I/O-poll-server代码

poll的实现和select非常相似,只是描述fd集合的方式不同,poll使用pollfd结构而不是select的fd_set结构,其他的都差不多。我

2017-08-31 09:23:08 399

原创 Linux复用I/O-Select-server代码

#include /* According to earlier standards */#include #include #include int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);nfds: 监控的文件描述

2017-08-31 09:11:10 407

转载 设计模式原则详解

转载: http://blog.csdn.net/hguisu/article/details/7571617      hguisu 面向对象设计模式原则详解 我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。       应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计

2017-08-26 21:45:52 242

转载 十道海量数据处理面试题与十个方法大总结

转载:http://blog.csdn.net/v_july_v/article/details/6279498/      海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http

2017-08-26 14:24:28 308

转载 C++函数中那些不可以被声明为虚函数的函数

参考:http://blog.csdn.net/hackbuteer1/article/details/6878255常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。1、为什么C++不支持普通函数为虚函数?      普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编

2017-08-26 09:47:09 207

转载 解决hash表冲突的方法

http://blog.csdn.net/lightty/article/details/111919711、开放地址法:(1)线性探查法(Linear Probing):找到第一个空位置放置(2)线性补偿探测法:按一定步长往后找空位置(3)随机探测:随机对应空位置(4)线性探测再散列:原位置偏移+1,-1,+4,-4,+9,-9,+16,-16....2、

2017-08-21 20:21:10 444

原创 常见锁原理和使用-旋转锁和SRWLock

请参考本人线程同步方面的博客;1、旋转锁:在实现旋转锁的时候InterlockedExchange及其有用。while(InterlockedExchange(&flag,true) ==true) sleep(0);把flag的值设为true,并检查原来的值是否为true,若是,则说明有其他线程正在使用该资源,于是while循环会继续执行,直到其他函数将flag改为false。缺点:旋转

2017-08-10 22:51:14 1780

原创 线程基础知识-产生、退出、状态切换

线程的结束方式:变量和事件线程的通信方式:变量和消息线程的两个组成部分:线程的内核对象和线程栈/************** 引入线程优点******************/(1)易于调度(2)提高并发性(3)开销小;创建线程比创建进程快,所需要的开销也小;(4)有利于发挥多处理器的功能。通过创建多线程,每个线程都在一个处理器上运行,从而实现应用改程序的并行,使每

2017-08-10 16:50:04 406

原创 线程同步--协同方式和互斥方式

参考博客:http://www.cnblogs.com/kennyMc/archive/2012/12/15/2818887.html   互斥量进行线程同步,与关键段和事件的区别参考博客:http://www.cnblogs.com/xilentz/archive/2012/11/13/2767317.html       四种进程或线程同步互斥的控制方法线程同步解决多线程并发问题;

2017-08-10 15:23:07 1897

原创 TCP滑动窗口控制流量的原理

参考博客:http://www.cnblogs.com/luoquan/p/4886345.html  TCP滑动窗口控制流量的原理参考博客:点击打开链接      TCP的流量控制TCP的滑动窗口机制       TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议。既然是一个可靠的传输协议就需要对数据进行确认。TCP协议里窗口机制有2种:一种是固定的窗

2017-08-10 08:55:35 1287 1

原创 进程间通信-Windows

参考博客:http://blog.csdn.net/bresponse/article/details/7085774  进程间通信方式总结,参考博客:http://www.cnblogs.com/zibility/p/5657308.html  几种Windows进程通信+代码!参考博客:http://blog.csdn.net/u013080921/article/details/44

2017-08-08 12:21:29 369

原创 进程通信-Linux

参考博客:https://yq.aliyun.com/articles/47679  Linux进程间通信的几种方式总结http://blog.csdn.net/bresponse/article/details/7085774  进程间通信方式总结(windows 和linux)http://blog.csdn.net/tax10240809163com/article/detail

2017-08-07 20:52:43 218

原创 SOCKET通信

参考博客:http://blog.csdn.net/jiajia4336/article/details/8798421   Socket通信原理和实践平时说的最多的SOCKET是什么呢?实际上SOCKET是对TCP/IP协议的封装,SOCKET本身并不是协议,而是一个调用接口(API)socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open

2017-08-07 10:52:49 484

原创 TCP和UDP的区别和优缺点

1、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

2017-08-06 20:32:16 254103 24

原创 内存文件映射原理和简单应用

参考博客:http://blog.csdn.net/haiross/article/details/46875211参考博客:http://blog.csdn.net/mg0832058/article/details/5890688 内存映射文件原理探究硬盘上文件 的位置与进程 逻辑地址空间 中一块大小相同的区域之间的一一对应,这种对应关系纯属是逻辑上的概念,物理上是不存在的,原因是

2017-08-06 19:22:39 6132 2

原创 银行家算法解决死锁问题

参考文献:http://www.docin.com/p-1491046367.html银行家算法安全性序列分析摘要:在操作系统的处理机调度的过程中,由于竞争资源或者进程间推进顺序非法,都会导致死锁的发生。本文主要研究如何利用银行家算法可以避免死锁,并分析银行家算法安全性序列。关键词:银行家算法;安全性序列;避免死锁引言处理死锁的方法主要包括预防死锁、避免死锁、检测死锁和解除死锁

2017-07-23 15:42:07 3505

原创 MFC中模态和非模态对话框

参考博客:http://www.cnblogs.com/ikangkang/p/5965168.html1.简述  1.1模态对话框(model dialog box)    当模态对话框显示时,程序会暂停执行,直到关闭这个模态对话框之后,才能执行程序中的其他任务。点击模态对话框中的OK按钮,模态对话框会被销毁。  1.2非模态对话框(modeless dialog

2017-07-22 16:11:07 319

原创 C语言字符串相关操作总结

1)字符串操作 只有strcpy(),strcat()会在函数后面添加‘\0’char *strcpy(char destination[], const char source[]); 复制字符串 ,成功返回字符串目标地址。char *strncpy(char destination[], const char source[], int num);复制指定长度字符串,成功返回字符串

2017-07-07 20:43:12 333

转载 scanf,fscanf,sscanf的区别----整理

博客来源:http://blog.csdn.net/liulina603/article/details/12081273fread :以字节位计算长度,按照指定的长度和次数读取数据,遇到结尾或完成指定长度读取后停止.fscanf :格式化读取,按照指定的格式串进行读取数据,并将数据初始化为指定的格式.所以在文本方式下才能有效的判断数据内容.fgets :整行读取,遇到回车换行

2017-07-05 09:57:34 1420

原创 C/C++ 文件读写操作总结

参考博客:http://www.cnblogs.com/jianyungsun/archive/2011/02/19/1958587.html在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;

2017-07-03 15:42:52 471

原创 Sizeof与Strlen的区别与联系

参考:http://www.cnblogs.com/carekee/articles/1630789.html一、sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此

2017-07-01 19:57:44 146

原创 memcpy 、sprintf和strcpy 的比较

参考博客:http://blog.csdn.net/lovemysea/article/details/5275611这些函数的区别在于 实现功能 以及 操作对象 不同。strcpy 函数操作的对象是 字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能。char *strcpy( //头文件 char *strDestination,

2017-06-29 16:29:48 381

原创 类中成员函数调用问题

虚函数执行时,跟指针类型没有关系;跟作用域和虚函数表(new出来的对象有关)有关系;       如果有作用域,根据作用域执行(不会走虚函数表,直接到代码段找),与new的类型和指针类型没有关系;       如果没有作用域关键词则根据虚函数表(与new对象有关)执行;非虚重写函数执行时:跟new出来的对象没有关系,跟作用域和指针类型有关系      如果有作用域,则根据作用域调用

2017-03-21 08:50:26 4899

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除