#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
pthread_t IDA;
pthread_t IDB;
pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
#define RUN 1
#define STOP 0
int status = RUN;
void * thread_function(void *param)
{
static int i = 0;
while (1)
{
pthread_mutex_lock(&mut);
while (!status)
{
pthread_cond_wait(&cond, &mut);
}
pthread_mutex_unlock(&mut);
//do actual something
printf("thread is running...\n");
sleep(1);
}
}
void thread_resume()
{
if (status == STOP)
{
pthread_mutex_lock(&mut);
status = RUN;
pthread_cond_signal(&cond);
printf("pthread run!\n");
pthread_mutex_unlock(&mut);
}
}
void thread_pause()
{
if (status == RUN)
{
pthread_mutex_l
linux线程的挂起和唤醒
最新推荐文章于 2024-05-21 06:00:00 发布