- 博客(6)
- 收藏
- 关注
原创 跨平台的线程封装类
#ifdef WIN32#include #include #else#include #endif/*#ifdef WIN32typedef unsigned int(__stdcall *thread_func)(void*);#elsetypedef void*(*thread_func)(void*);#endif*/class base_thread{p
2016-07-29 15:58:54 3167 3
原创 Linux互斥锁和条件变量
#include class thread_lock{public: thread_lock() { pthread_mutexattr_init(&m_mutexatr); //互斥锁重复上锁,不会引起死锁,一个线程对这类互斥锁的多次重复上锁必须由这个线程来重复相同数量的解锁,这样才能解开这个互斥锁,别的线程才能 //得到这个互斥锁 pthread_mutexattr_
2016-07-29 15:30:25 1235
原创 Linux下高并发socket,单机提供五十万连接
引用《Linux网络编程》一个完整的Socket描述,五元组,{协议,本地地址,本地端口,远程地址,远程端口}当我们自己写客户端测试程序来测试我们的服务端程序性能的时候,经常会遇到连接量上不去的问题,大多都是停留在2万左右。如果我们的测试机器有限,要想达到百万连接量的测试,那我们哪里去找50台测试机器了?实际的测试也不可能给50台测试机器。那么根据这个五元组,我们可以做一下文章。首先协议已
2016-07-14 11:13:52 4860
原创 线程安全的单例模式
把构造函数私有化,对外提供一个静态的成员函数获取对象实例,这是我们对单例模式的最简单印象,但是如果多线程同时获取对象实例的时候,我们首先想到的是加锁class Singleton { private: static Singleton* m_instance; Singleton(){} public: static Singleton* ge...
2016-07-13 15:03:32 585
原创 不调用C/C++的字符串库函数,请编写函数strcpy
已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数strcpychar*strcpy(char*strDest,constchar*strSrc){a...
2016-07-13 11:31:58 6487 4
原创 拷贝构造函数可以访问私有数据成员
class CExample{public: CExample(){pBuffer=NULL; nSize=0;} ~CExample(){delete pBuffer;} CExample(const CExample&); void Init(int n){ pBuffer=new char[n]; nSize=n;}private: char *pBuffer; ...
2016-07-13 10:55:55 6279 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人