#include <unistd.h>
#include <pthread.h>
#include <stdio.h>
int global;
int i = 30; 
int j = 30; 
int k = 30; 
pthread_mutex_t mutex;
void* child1(void* arg)
{
    while(k--)
    {   
        pthread_mutex_lock(&mutex);
        global++;
        printf("from child1\n");
        printf("%d\n",global);
        pthread_mutex_unlock(&mutex);
    }   
}
void* child2(void* arg)
{
    while(j--)
    {   
        pthread_mutex_lock(&mutex);
        global++;
        printf("from child1\n");
        printf("%d\n",global);
        pthread_mutex_unlock(&mutex);
    }   
}
int main()
{
    pthread_t tid1, tid2;
    pthread_mutex_init(&mutex, NULL);
    pthread_create(&tid1, NULL, child1, NULL);
    pthread_create(&tid2, NULL, child2, NULL);   
    while(i--)
    {
        pthread_mutex_lock(&mutex);
        global++;
        printf("from main\n");
        printf("%d\n",global);
        pthread_mutex_unlock(&mutex);
    }
    return 0;
}
我是pthread和多线程的新手,这段代码的结果是main xx和child1很少出现,三个线程从来没有一起出现过,有什么问题?