TinyXMl中的多线程写入数据
Multi thread Writing data in TinyXMl
因为TinyXML是一个很好的XMl库,我用它来保存网络传输中的数据包,比如客户端在UDP多播模式下从服务器接收一些数据包。客户端加入多个多播组,因此必须创建多线程来接收和写入不同文件中的数据(当然,文件的数量等于多播组的数量)。我设计了一个writeXML类,它有一个DoWrite(char*,size_t)函数。
例如:
void DoWrite(char*,size_t)
{
boost::unique_lock<boost::mutex> lLock(m_lock);
lLock.lock();
}
但问题是,每当调用DoWrite函数时,boost:lock_error就会出现。谁能帮我?tks非常好强调文本
从代码中删除lLock.lock();
,boost::unique_lock
为您在传入的互斥体上调用lock
,因此您不需要手动调用它(您在互斥体上两次调用锁)。参考:
unique_lock(可锁定&m)
效果:
存储对m的引用。调用m.lock()。
此外,除非您想推迟获取锁,否则请改用boost::lock_guard
。有关更多详细信息,请参阅文档。
相关文章:
- 在C++中使用cURL和多线程
- 为什么添加延迟会提高此多线程环境中的数据吞吐量?
- 在使用 std::cout 和多线程程序中如何避免数据竞争<iomanip>?
- 多线程和共享资源:使用C++定期将数据从缓冲区(数据结构)复制到文件
- 使用FFMPEG编写多线程视频和音频数据包
- 共享内存多线程和数据访问
- TinyXMl中的多线程写入数据
- 在多线程程序中通过用户事件传递短数据的正确方法是什么
- 在多线程环境中将数据写入数组
- 我应该在多线程编程中始终锁定全局数据吗?为什么
- C++独立数据的多线程性能
- 为什么开发人员在多线程代码的读/写过程中锁定字长数据
- c++多线程套接字无法接收客户端数据
- 如果一个程序的主要功能是从磁盘中读取数据,那么让它多线程是不是一个好主意?
- c++ /Windows多线程同步/数据共享
- 可以安全地共享指针数据的多线程库
- 在执行多线程处理时保存数据
- std::线程c++.更多线程相同的数据
- 如何同步多线程程序中正在处理的数据
- 如果一个且只有一个线程被停止,可以从多线程进程中跟踪读/写数据