我在这里阅读了很多帖子,问题是C++的标准容器(如"list"或"map"是线程安全的,所有人都说它不是一般的.并行读取应该没问题,但并行写入或者并行读写可能会导致问题.
现在我发现在www.cplusplus.com上,在大多数操作期间访问或修改列表是安全的.
一些例子:
访问容器(const和非const版本都不会修改容器).不访问映射值:同时访问或修改元素是安全的.
容器已修改.同时访问现有元素是安全的,尽管容器中的迭代范围不是.
我是否想念cplusplus.com或者我还有什么关于std容器中线程安全的知识.
提前致谢!
PS:我要的是C++ 03而不是C++ 11
我正在编写一个Android应用程序,它能够导出一个Activity或Fragment一个JSON文件的当前状态,该文件具有以下通用格式:
{
"data": {
"result": {
<content depends on specific class>
},
"input": {
<content depends on specific class>
}
},
"identifier": <identifier depends on specific class>,
"version": 1
}
Run Code Online (Sandbox Code Playgroud)
这意味着Activities/ Fragments有能力导出填充标记内容实现我称为"可导出"的接口,整个导出函数调用接口中定义的方法.这是一个很好的直接解决方案.
到现在为止还挺好.现在我想做出相反的方向.我想加载一个文件并调用相应的Activity/ Fragment依赖于标识符的内容.
读取"输入"和"结果"的内容应通过Activity/ Fragment本身的方法完成.
不幸的是,对于我来说,如何以优雅的方式解决这个问题并不明显.最好的方法是什么?解决方案应尽可能抽象,以便可以轻松扩展.