pthread更改全局變量

#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線程結束工作時才返回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章