pthread_t mThreadID;
pthread_mutex_t mDataLock;
pthread_cond_t mDataCondition;
初始化函数中:
pthread_cond_init(&mDataCondition, NULL);
ret = pthread_create(&mThreadID, NULL, wait_callback_thread, NULL);
在其他函数中调用:来触发信号
pthread_cond_signal(&mDataCondition);
// for test begin +++
#include <sys/time.h>
void* wait_callback_thread(void* args)
{
struct timeval now;
struct timespec outtime;
pthread_mutex_lock(&mDataLock);
while(1){
gettimeofday(&now, NULL);
outtime.tv_sec = now.tv_sec + 2; //2s
outtime.tv_nsec = now.tv_usec * 1000;
//pthread_cond_wait(&mDataCondition, &mDataLock);
pthread_cond_timedwait(&mDataCondition, &mDataLock, &outtime);
//notify callback
在此处 通过 JNI 回调 java 方法
}
pthread_mutex_unlock(&mDataLock);
return NULL;
}
// for test begin ---
Linux C++ pthread 下定时执行代码
最新推荐文章于 2024-07-18 20:16:46 发布