linux 互斥锁 1初始化互斥锁 2上锁 3解锁 4销毁互斥锁
    初始化互斥锁
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);
 
上锁
int pthread_mutex_lock(pthread_mutex_t *mutex);
 
解锁
int pthread_mutex_unlock(pthread_mutex_t * mutex);
 
销毁互斥锁
int pthread_mutex_destroy(pthread_mutex_t *mutex);
 
#include <stdio.h>
 #include <stdlib.h>
 #include <pthread.h>
 #include <unistd.h>
  
 pthread_mutex_t mutex;
 // print
 void printer(char *str)
 {
     pthread_mutex_lock(&mutex);
     while(*str!='\0')
     {
         putchar(*str);    
         fflush(stdout);
         str++;
         sleep(1);
     }
     printf("\n"); 
     pthread_mutex_unlock(&mutex);
 }
  
 // thread one
 void *thread_fun_1(void *arg)
 {
     char *str = "hello";
     printer(str); 
 }
  
 // thread two
 void *thread_fun_2(void *arg)
 {
     char *str = "world";
     printer(str); 
 }
  
 int main(void)
 {
     pthread_t tid1, tid2;
     int err1, err2;
         pthread_mutex_init(&mutex, NULL);
     // creat two thread
     err1 = pthread_create(&tid1, NULL, thread_fun_1, NULL);
     err2 = pthread_create(&tid2, NULL, thread_fun_2, NULL);
     // wait thread end
     pthread_join(tid1, NULL);
     pthread_join(tid2, NULL); 
     pthread_mutex_destroy(&mutex);
     return 0;
 }