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);
[解决办法]
主线程结束了, 所有的子线程都会被干掉.