- pthread_mutex_init():互斥锁的初始化
- pthread_mutex_lock():锁定互斥锁,如果尝试锁定已经被上锁的互斥锁则阻塞至可用为止
- pthread_mutex_trylock():非阻塞的锁定互斥锁
- pthread_mutex_unlock():释放互斥锁
- pthread_mutex_destory():互斥锁销毁函数
例程:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
void *function(void *arg);
pthread_mutex_t mutex;
int counter = 0;
int main(int argc, char *argv[])
{
int rc1,rc2;
char *str1="wenhaoll";
char *str2="linglong";
pthread_t thread1,thread2;
pthread_mutex_init(&mutex,NULL);
if((rc1 = pthread_create(&thread1,NULL,function,str1)))
{
fprintf(stdout,"thread 1 create failed: %dn",rc1);
}
if(rc2=pthread_create(&thread2,NULL,function,str2))
{
fprintf(stdout,"thread 2 create failed: %dn",rc2);
}
pthread_join(thread1,NULL);
pthread_join(thread2,NULL);
pthread_mutex_destroy(&mutex);
return 0;
}
void *function(void *arg)
{
char *m;
m = (char *)arg;
pthread_mutex_lock(&mutex);
while(*m != '0')
{
printf("%c",*m);
fflush(stdout);
m++;
sleep(1);
}
printf("n");
pthread_mutex_unlock(&mutex);
}