#include <pthread.h>
#include <iostream>
using namespace std;

int global = 0;

void * assign_value(void *param){
    global = 3;
}

int main(){
    pthread_t thread;
    pthread_create(thread, NULL, assign_value, (void *) nullptr);
    pthread_join(thread, NULL);
    cout << global << endl;
    return 0;
}

结果输出为3,如果不加pthread_join(thread,NULL)的话,输出为0。这里,pthread_join只有当thread线程结束工作时才返回。