读书人

whlid 循环不起作用?该怎么解决

发布时间: 2014-01-22 00:03:39 作者: rapoo

whlid 循环不起作用?


#include<stdio.h>//printf
#include<string.h>//strlen
#include<sys/socket.h>//socket
#include<arpa/inet.h>//inet_addr
#include<pthread.h>
#include<unistd.h> //sleep
void *threadhander(void*);
int toserver(int i);

int main(int argc , char *argv[])
{
for(int i=0;i<10;i++)
{
pthread_t thr;
pthread_create(&thr,NULL,threadhander,(void *)i);
}
return 0;
}

void *threadhander(void * fid)
{
while(1)
{
// toserver((int )fid);
pthread_t t1;
t1=pthread_self();

printf("fid=%d,threadid=%u\r\n",(int)fid,(int)t1);
sleep(1);
}
return 0;
}


以上为什么只输出一次?从0-9 只输出一次。
[解决办法]
main(int argc , char *argv[]) 父进程 结束了...


还有传参 是传的 局部变量pthread_create(&thr,NULL,threadhander,(void *)i);
[解决办法]
主线程结束了, 所有的子线程都会被干掉.

读书人网 >C语言

热点推荐