关闭

跨平台的线程封装类

#ifdef WIN32 #include #include #else #include #endif /* #ifdef WIN32 typedef unsigned int(__stdcall *thread_func)(void*); #else typedef void*(*thread_func)(void*); #endif */ class base_thread { p...
阅读(687) 评论(0)

Linux互斥锁和条件变量

#include class thread_lock { public: thread_lock() { pthread_mutexattr_init(&m_mutexatr); //互斥锁重复上锁,不会引起死锁,一个线程对这类互斥锁的多次重复上锁必须由这个线程来重复相同数量的解锁,这样才能解开这个互斥锁,别的线程才能 //得到这个互斥锁 pthread_mutexattr_...
阅读(540) 评论(0)

Windows网络编程Select模型的封装和queue作为数据缓存的使用

首先是对Select网络模型的封装,由于会用到数据缓存,所以接收到的数据需要对应一个socket套接字,这样回复数据的时候才知道对象。 #pragma once //存储从某个套接字接受到的数据,通过套接字可以发送处理后的数据 struct NetDataBuffer { char strBuffer[BUFFER_SIZE]; SOCKET sSocket; }; class CI...
阅读(430) 评论(0)

C++封装MySQL C API

整理了一下之前在公司写的MySQL封装类,分享一下 TableStruct.h定义了一个结构体,该结构体用来保存结果集的内容,更加人性化的展现出来 #pragma once #include //函数输入输出参数标识 #define DB_OUT //函数输出参数 #define DB_IN //函数输入参数 //函数返回值 enum { MYSQL_DB_SUCCES, //数...
阅读(673) 评论(0)

[置顶] Linux下高并发socket,单机提供五十万连接

引用《Linux网络编程》 一个完整的Socket描述,五元组,{协议,本地地址,本地端口,远程地址,远程端口} 当我们自己写客户端测试程序来测试我们的服务端程序性能的时候,经常会遇到连接量上不去的问题,大多都是停留在2万左右。如果我们的测试机器有限,要想达到百万连接量的测试,那我们哪里去找50台测试机器了?实际的测试也不可能给50台测试机器。那么根据这个五元组,我们可以做一下文章。首先协议已...
阅读(1362) 评论(0)

线程安全的单例模式

把构造函数私有化,对外提供一个静态的成员函数获取对象实例,这是我们对单例模式的最简单印象,但是如果多线程同时获取对象实例的时候,我们首先想到的是加锁class Singleton { private: static Singleton* m_instance; Singleton(){} public: static Singleton* getIn...
阅读(216) 评论(0)

不调用C/C++的字符串库函数,请编写函数strcpy

不调用C++/C的字符串库函数,请编写函数 strcpy...
阅读(1668) 评论(2)

拷贝构造函数可以访问私有数据成员

访问限制标号是针对类而不是针对一个类的不同对象,只要同属一个类就可以不用区分同一个类的不同对象。...
阅读(1174) 评论(3)
    个人资料
    • 访问:28158次
    • 积分:770
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:0篇
    • 译文:0篇
    • 评论:30条
    联系方式

    公司:深信服科技股份有限公司


    所在地:中国-广东省-深圳市


    QQ交流群:165650716


    文章分类