C语言中互斥Pthread互斥锁的Posix信号量等价
以下面这段代码为例(由提供),将C语言中互斥Pthread互斥锁的Posix信号量等价,c,pthreads,posix,semaphore,mutual-exclusion,C,Pthreads,Posix,Semaphore,Mutual Exclusion,以下面这段代码为例(由提供),将pthread\u mutex\u lock()和pthread\u mutex\u unlock()转换为POSIX并实现函数间互斥的方法是什么 #include <pthread.h> #include <stdio.h> #include <unistd.h> pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER; pthread_mutex_t lock = PTHREA
pthread\u mutex\u lock()
和pthread\u mutex\u unlock()
转换为POSIX并实现函数间互斥的方法是什么
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER;
pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
int done = 1;
void* foo()
{
pthread_mutex_lock(&lock);
if (done == 1) {
done = 2;
printf("Waiting on condition variable cond1\n");
pthread_cond_wait(&cond1, &lock);
}
else {
printf("Signaling condition variable cond1\n");
pthread_cond_signal(&cond1);
}
pthread_mutex_unlock(&lock);
printf("Returning thread\n");
return NULL;
}
#包括
#包括
#包括
pthread_cond_t cond1=pthread_cond_初始值设定项;
pthread\u mutex\u t lock=pthread\u mutex\u初始值设定项;
int done=1;
void*foo()
{
pthread_mutex_lock(&lock);
如果(完成==1){
完成=2;
printf(“等待条件变量cond1\n”);
pthread_cond_wait(&cond1,&lock);
}
否则{
printf(“信令条件变量cond1\n”);
pthread_cond_信号(&cond1);
}
pthread_mutex_unlock(&lock);
printf(“返回线程\n”);
返回NULL;
}
将pthread_mutex_lock()和pthread_mutex_unlock()转换为POSIX的方法是什么。。。?我不知道你说的“转换到POSIX”是什么意思,因为pthread.*
就是POSIX。这能回答你的问题吗?