作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我知道序列化对象以及如何将它们保存到磁盘,但线程序列化究竟意味着什么?任何人都可以帮助我解决这个问题并指出正确的方向吗?
最佳答案
你是对的,这是序列化
的两种不同含义。你熟悉data serialization这是将数据结构转换为某种规范表示形式的字节流。在多线程中,术语序列化表示 mutual exclusion对于thread or process synchronization这意味着一次只有一个线程可以对数据结构进行操作。 C++11 使用 std::mutex
#include <mutex>
std::mutex file_io_mutex;
{
std::lock_guard<std::mutex> guard(file_io_mutex);
std::out << "Only one thread at a time will execute this line." << std::endl;
}
这是 Resource Acquisition Is Initialization (RAII) 的示例同时获取和初始化资源,并在超出范围时释放资源(执行到达右大括号)。这是一个常见的习惯用法,它确保即使代码在到达 block 末尾之前抛出异常也能释放互斥体。
关于c++ - C++中的线程序列化是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654230/
我是一名优秀的程序员,十分优秀!