mythread.cpp
来自「通用 linux 线程池, 使用 C++ 编写, 具有良好的扩展性.」· C++ 代码 · 共 65 行
CPP
65 行
#include "mythread.h"#include <unistd.h> #include <pthread.h> #include <time.h> MyThread::MyThread(void){ m_bQuit = false; pthread_cond_init(&m_exit, NULL); pthread_mutex_init(&m_mutex, NULL); start();}MyThread::~MyThread(void){}void MyThread::stop(void){ m_bQuit = true; pthread_cond_broadcast(&m_exit); pthread_join(m_id, NULL); pthread_cond_destroy(&m_exit); pthread_mutex_destroy(&m_mutex);}void MyThread::run(void){ int ret = 0; int i = 0; timespec waitTime; // waitTime.tv_sec = time(NULL) + 1; //Wait for 1 second// waitTime.tv_nsec = 500000; /* 500,000 nanoseconds = 500 ms */ while(1) { i++; waitTime.tv_sec = time(NULL) + 1; //Wait for 1 second waitTime.tv_nsec = 500000; /* 500,000 nanoseconds = 500 ms */ cout<<"==========================="<<endl; pthread_mutex_lock(&m_mutex); ret = pthread_cond_timedwait(&m_exit, &m_mutex, (const struct timespec*)&waitTime); // pthread_cond_wait(&m_exit, &m_mutex); pthread_mutex_unlock(&m_mutex); if(ret !=0 ) { /* Handle timeout */ cout<<"timeout..."<<ret<<"......\n"; } else if(ret == 0) { cout<<"..........event.......\n"; /* condition received a condition signal */ break; } } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?