int pthread_create(pthread_t * thread,pthread_attr_t *attr,void*(*func)(void*),void* arg);
//注意传入函数的参数表和返回值都是void*的...第二项attr下次学
线程不一定先开的就一直先运行,所以如果开两个线程分别打hello 和world的话不一定能总是得到hello,world.
计数和打印...似乎计数的线程要慢点...囧...
因为实在不想开全局变量...所以...
void * pcnt(void *cnt){
for (int i=0;i<num;i++){
cout<<*(int*)cnt<<'\n';
fflush(stdout);
sleep(1);
}
}
void * icnt(void *cnt){
for (int i = 0; i < num; ++i)
{
(*(int*)cnt)++;sleep(1);
}
}
int main(){
pthread_t t1,t2;
int cnt = 0;
pthread_create(&t1,NULL,pcnt,(void*)&cnt);
pthread_create(&t2,NULL,icnt,(void*)&cnt);
pthread_join(t1,NULL);
}
其实最后的join只是等待线程出结果的罢了.用join感觉有回归的意思吗?