23,121
社区成员
发帖
与我相关
我的任务
分享
#include <pthread.h>
#include <stdio.h>
#define RUN 1
#define STOP 0
bool g_4g_status = STOP;
pthread_mutex_t g_status_mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t g_status_cond = PTHREAD_COND_INITIALIZER;
void * Detect_4G_mode(void * param)
{
while (1)
{
pthread_mutex_lock(&g_status_mutex);
g_4g_status = RUN;
pthread_cond_signal(&g_status_cond);
pthread_mutex_unlock(&g_status_mutex);
pthread_mutex_lock(&g_status_mutex);
g_4g_status = STOP;
pthread_mutex_unlock(&g_status_mutex);
}
return NULL;
}
void * Send_to_4g_thread(void * param)
{
while(1)
{
pthread_mutex_lock(&g_status_mutex);
while (STOP == g_4g_status)
{
pthread_cond_wait(&g_status_cond, &g_status_mutex);
}
pthread_mutex_unlock(&g_status_mutex);
/*....*/
}
return NULL;
}
int main(int argc, char * argv[])
{
pthread_t tid1;
pthread_t tid2;
pthread_create(&tid1, NULL, Detect_4G_mode, NULL);
pthread_create(&tid2, NULL, Send_to_4g_thread, NULL);
pthread_join(tid1, NULL);
pthread_join(tid2, NULL);
return 0;
}