Многопоточная программа для Linux не дает ожидаемого результата

Это мой код, я скомпилировал его с помощью:

gcc thread.c -lpthread

Он не выдал никаких ошибок или предупреждений. Но когда я запускаю его, программа ничего не печатает.

Платформа: Ubuntu 11.10 64-разрядная версия gcc 4.6.1
Статус выхода: 0

При отладке я обнаружил, что он печатает hello, как я и ожидал.

Вот мой код:

#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>

void *loopPrint(void *ptr)
{
    char *p = (char *)ptr;
    while (1)
    {
        printf("%s\n", p);
    }
}

void *pClock(void *ptr)
{
    sleep(3);
    exit(0);
}

int main()
{
    pthread_t showMsg, clock;
    int main_pth, wait_pth;
    char *msg = "Hello";
    main_pth = pthread_create(&showMsg, NULL, loopPrint, (void *)msg);
    wait_pth = pthread_create(&clock, NULL, pClock, NULL);

    pthread_join(main_pth, NULL);
    pthread_join(wait_pth, NULL);
    return 0;
}
0
задан Mat 30 March 2012 в 16:28
поделиться