whlid 循环不起作用?该怎么解决
whlid 循环不起作用?
以上为什么只输出一次?从0-9 只输出一次。
------解决方案--------------------
main(int argc , char *argv[]) 父进程 结束了...
还有传参 是传的 局部变量pthread_create(&thr,NULL,threadhander,(void *)i);
------解决方案--------------------
主线程结束了, 所有的子线程都会被干掉.
#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);
------解决方案--------------------
主线程结束了, 所有的子线程都会被干掉.