最近在写Linux服务器多线程编程,但是出现了当主线程接收客户端连接并发创建子线程的时候,子线程接收到主线程的数据出现了错误的情况,经过发现,是因为在子线程中没有立即处理主线程传递过来的数据,而是过了一会才将数据进行处理,而由于主线程中频繁的创建子线程,主线程传递给子线程中的数据会出现被重写,所以,在子线程中会出现数据出错的情况。
void *testThread(char *argc)
{
sleep(1) ;
int connfd = *((int*)argc) ;
printf("%d\n",connfd) ;
free(argc) ;//释放传进来的整型指针
return ;
}
int main()
{
int connfd = 0 ;
for(;connfd<100;connfd++)
{
int *s = (int*)malloc(sizeof(int)) ;
*s = 1024 ;<