C多线程参数传递问题
我的程序是这样的:主进程会不停从消息队列读取消息,然后一读取到消息就立刻创建子线程来对消息进行处理,现在的情况是,当同时出现多条数据时,就会创建多个子线程,而这时,线程就...
我的程序是这样的:主进程会不停从消息队列读取消息,然后一读取到消息就立刻创建子线程来对消息进行处理,现在的情况是,当同时出现多条数据时,就会创建多个子线程,而这时,线程就会出现数据覆盖的问题,前面建立的线程都会被最后面的线程的数据覆盖掉,请问这种问题怎么解决?
程序是LINUX 下的C开发的
void main()
{
for(;;)
{
//读取消息队列数据赋值给rcv_buf
err = pthread_create( &ntid, NULL,Thrdproduce, & (rcv_buf) );
}
}
void *Thrdproduce(void* arg)
{
std::string prcv_buf;
prcv_buf= ((std::string)(char*)arg);
cout<<prcv_buf;
}
当创建多个子线程时,prcv_buf打印出来的值会被后面的线程的值覆盖 展开
程序是LINUX 下的C开发的
void main()
{
for(;;)
{
//读取消息队列数据赋值给rcv_buf
err = pthread_create( &ntid, NULL,Thrdproduce, & (rcv_buf) );
}
}
void *Thrdproduce(void* arg)
{
std::string prcv_buf;
prcv_buf= ((std::string)(char*)arg);
cout<<prcv_buf;
}
当创建多个子线程时,prcv_buf打印出来的值会被后面的线程的值覆盖 展开
2个回答
2014-06-27
展开全部
考虑线程同步的问题,有各促解决方案。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询