linux多线程数据冲突
来源:互联网 发布:复杂网络聚类方法 编辑:程序博客网 时间:2024/05/17 07:29
最近在写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 ;
pthread_t thread ;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
pthread_create(&thread,&attr,&testThread,(void*)s) ;
}
}
- linux多线程数据冲突
- linux线程中的问题-----数据冲突
- 多线程共享资源冲突
- 多线程共享资源冲突
- 多线程共享资源冲突
- 多线程冲突问题
- 多线程httpclient冲突
- 在处理多线程引起的共享数据冲突问题上,非常规解决办法两种:
- linux学习之十五---多线程私有数据
- Linux多线程实践(4) --线程特定数据
- Linux多线程实践(4) --线程特定数据
- Linux多线程实践(4) --线程特定数据
- 用 sched_yield 避免多线程冲突
- java 多线程 解决资源冲突
- 解决数据集冲突
- 数据冲突解决办法
- linux多线程下打开串口发送和接收数据
- Linux C 多线程【3】--传递参数&共享进程数据
- SEO不再是拼技术而是来到拼运营的年代了
- 如何在ubuntu10.04环境下安装ns-2.29+mih
- Spring Security
- remote_message2
- 关于集群、负载均衡、分布式的区别(转)
- linux多线程数据冲突
- 关于java控制台输入
- calloc/ malloc
- VC SerialPort串口调试,报错: SerialPort comstat is being used without defining
- UDP端口传递接收数据
- hibernate 自定义类型(地址)
- 网络编程中通过hostname获取ip的方法
- UIWebView的几个小技巧
- rel="nofollow"对网站的作用