自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

迷路的专栏

迷路的导航

  • 博客(8)
  • 资源 (10)
  • 收藏
  • 关注

转载 linux锁机制

在linux内核中,有很多同步机制。比较经典的有原子操作、spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而seqlock和rcu应该可以不算在经典之列,它们是两种比较有意思的同步机制。atomic(原子操作):所谓原子操作,就是该操

2014-12-22 11:48:41 897

转载 epoll用法说明,ET模式下的边缘触发处理同时多事件

epoll完整实例#include deque>#include map>#include vector>#include pthread.h>#include semaphore.h>#include time.h>#include sys/time.h>#include sys/shm.h>#include errno.h>#include sys/

2014-12-19 13:57:55 1246

转载 epoll详解

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 ep

2014-12-15 15:11:08 403

转载 Linux下高并发socket最大连接数所受的各种限制

1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4 ~]$ ulimit

2014-12-15 11:41:26 694

转载 IO多路复用之select总结

1、基本概念  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。

2014-12-15 11:37:11 751

转载 select、poll、epoll之间的区别总结[整理]

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用

2014-12-15 11:36:13 402

转载 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别

本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex?    使用多线程其实是非常容易的,下面这个程序的主线程会创建了一个子线

2014-12-11 17:53:39 396

转载 linux下快速遍历目录树方法

个人使用nftw()遍历指定目录的大小: 具体用法请参照下文说明#include #include #include #include #include #include #include #define _XOPEN_SOURCE 500#define OPENNUMS 1024off_t total_size;int back(const char *dirpath

2014-12-02 15:58:44 1885

Window C++延时测试代码

Windows微秒级延时/Sleep延时测试代码 在Windows环境下使用Sleep的时候,经常会遇到明明Sleep了1ms,结果被唤醒时所消耗的时间大于1ms, 对于那些精确度稍微高一点的Sleep控制时序,就不起作用了,众所周知Windows的Sleep是基于毫秒级别的,如果需要精确到微秒级,需要另辟蹊径

2020-12-18

Windows几种延时精确度的测试源码

Windows微秒级延时/Sleep延时测试代码 在Windows环境下使用Sleep的时候,经常会遇到明明Sleep了1ms,结果被唤醒时所消耗的时间大于1ms, 对于那些精确度稍微高一点的Sleep控制时序,就不起作用了,众所周知Windows的Sleep是基于毫秒级别的,如果需要精确到微秒级,需要另辟蹊径

2020-10-15

SleepTest.zip

Windows6种Sleep1毫秒的精度测试源码,vs2015可以直接编译运行 测试类别分别包括:     1、Windows中的原生Sleep     2、C++11的this_thread::sleep_for以及timeBeginPeriod调整定时器精度两个方式     3、socket连接的select的方式     4、多媒体时钟QueryPerformanceCounter的微秒级方式     5、MsgWaitForMultipleObjectsEx

2019-08-15

Windows libxml2,32位,64位(手动编译包括DLL和lib)

WIndows环境下的libxml2库,在网上找到的基本上都是32位的,自己根据源码手动编译了64位的库,包括libxml2.dll以及libxml2.lib,基于源码版本2.9.0以及iconv-1.9.1的依赖 已经通过验证,并且在应用程序中使用

2015-07-29

MFC实现表格明细群发邮件小助手源文件

MFC实现表格明细群发邮件小助手的源文件,开发工具使用的是VS2010 执行文件请见:http://download.csdn.net/detail/liuhengxiao/7926133

2014-09-16

MFC做的表格明细群发邮件小助手

将Excel表格中行的内容发送到指定邮箱的小工具。 常用的比如说工资明细、货物清单明细等等,每行记录发送一封邮件 如果有需要对源代码进行功能拓展的

2014-09-16

C/C++实现Linux和Windows文件创建、替换、插入指定大小随机字符

公司在实际测试中遇到需要有内容的文件,就着手写了这个小工具 用途:创建指定大小以随机字符填充的文件、替换文件中随机位置指定大小的内容为随机字符、指定位置插入指定大小的随机字符,支持大文件操作,详情请参照README文档 有源代码和应用程序,需要扩展的朋友可以直接在源代码的基础上进行修改,工具虽小但也请尊重作者,谢谢! 如有疑问或者建议请发邮件至[email protected]

2014-08-21

C/C++实现linux和Windows查看系统、进程、服务的内存和CPU使用

遇到需求写的代码,没那么正规,但也请你尊重作者 C/C++实现linux和Windows查看系统、进程、服务的内存和CPU使用情况的源代码,生成的是静态链接库,Windows和Linux下经测试都可用,查看系统、指定名称的服务、指定名称的进程占用CPU和内存,查看方式不是通过程序中运行命令行的方式,而是采用系统提供的接口去查看内核状态 在开发中遇到需要查看这些信息的朋友可以去使用 如有疑问或好的建议请发送邮件至[email protected]

2014-08-21

Windows中编译完成的libnet.dll lib

自己手动编译的libnet.dll libnet.lib 对应的libnet版本为1.1.4

2014-08-01

Windows Server 2003DNS服务安装时缺失文件大全

Windows Server 2003 虚拟机安装DNS服务时缺失文件所用

2014-04-01

空空如也

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

TA关注的人

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