⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 condition.cpp

📁 linux下的线程池,其中使用了条件变量,互斥锁等保持线程同步的变量!
💻 CPP
字号:
#include "condition.h"
#include "mutex.h"

Condition::Condition(Mutex&mutex)
:mutex_(mutex)
{

#ifndef WIN32
	pthread_cond_init(&cond_,NULL);
#endif
}

Condition::~Condition()
{
#ifndef WIN32
	pthread_cond_destroy(&cond_);
#endif

}

bool Condition::signal()
{
#ifdef WIN32
	return true;
#else
	MutexApply ma(mutex_);
	return pthread_cond_signal(&cond_) == 0;
#endif

}

bool Condition::broadcast()
{
#ifdef WIN32
	return true;
#else
	MutexApply ma(mutex_);
	return pthread_cond_broadcast(&cond_) == 0;
#endif

}


bool Condition::wait()
{
#ifdef WIN32
	return true;
#else
	MutexApply ma(mutex_);
	pthread_mutex_t mutex = mutex_;
	return pthread_cond_wait(&cond_,&mutex);
#endif

}

int Condition::timedwait(const struct timespec* pabstime)
{
#ifdef WIN32
	return 0;
#else
	MutexApply ma(mutex_);
	pthread_mutex_t mutex = mutex_;
	return pthread_cond_timedwait(&cond_,&mutex,pabstime);
#endif

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -