此代碼需在linux 系統下運行,windows下不能夠,貌似要下個包。具體google.java
pthread_create的函數原型爲:linux
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
pthread_join函數原型爲:
int pthread_join(pthread_t thread, void **value_ptr);
#include <pthread.h>ios
#include <stdio.h>using namespace std;c++
}windows
編譯gcc test.cpp -pthread -lstdc++函數
運行 ./a.out google
能夠看到主線程和子線程交替打印信息。spa
關於pthread_join的解釋不少都是這麼說的:線程
「代碼中若是沒有pthread_join主線程會很快結束從而使整個進程結束,從而使建立的線程沒有機會開始執行就結束了。加入pthread_join後,主線程會一直等待直到等待的線程結束本身才結束,使建立的線程有機會執行。」code
經過打印結果看貌似是對的,跟java 線程中的join的效果不同。java中被join的線程必須運行完了,調用方纔接着運行。而這裏是能夠一塊兒運行的。