Поскольку основной поток завершается.
Поставь сон в основную ветку.
cout << "Hello";
sleep(1);
return 0;
Стандарт POSIX не определяет, что происходит при выходе из основного потока.
Но в большинстве реализаций это приведет к смерти всех порожденных потоков.
Таким образом, в главном потоке вы должны подождать, пока поток не умрет, прежде чем выйти В этом случае самое простое решение - просто спать и дать возможность другому потоку выполнить. В реальном коде вы бы использовали pthread_join ();
#include <iostream>
#include <pthread.h>
using namespace std;
#if defined(__cplusplus)
extern "C"
#endif
void *print_message(void*)
{
cout << "Threading\n";
}
int main()
{
pthread_t t1;
pthread_create(&t1, NULL, &print_message, NULL);
cout << "Hello";
void* result;
pthread_join(t1,&result);
return 0;
}