经常没事写一些服务器压力测试的工具,如http,mysql,等。说到压力测试,首先想到的应该就是多线程,研究过一段时间的pthread,包括线程锁,在这里发一个自己写的Posix封装,可用于很多需要使用到多线程的情景当中。
Posix.h
Posix应该把它当成一个父类,写一个子类继承他,并重写action方法,action()为所有的线程所执行的内容,最后使用Run()开始执行所有线程。#ifndef POSIX_H_
#define POSIX_H_
#include
#include
#include
#include
using namespace std;
class Posix {
public:
Posix();
int getThreadNumber(void); //获取线程数
int pthreadMutexInit(void); //初始化线程锁,如果不希望使用锁可以不用,有关锁的更多,在后面介绍
int pthreadMutexLock(void); //加锁
int pthreadMutexUnlock(void); //解锁
int pthreadMutexDestroy(void); //销毁锁
void setThreadNumber(int threadNumber); //设置开启的线程数
void Run(); //所有线程开始执行
virtual void action()=0; //每个线程执行的内容,在子类中重写