摘要: --本文为个人理解,如有错误,请批评指正 标准库stl::vector拷贝有几种方式: ① for(int i=0;i<v1.size();++i) {v1[i]=v2[i];} //法1,一个一个元素的复制② v1.assign(v2.begin(), v2.end()); // 法2,使用ass 阅读全文
posted @ 2022-01-10 17:37 山谷清芳 阅读(692) 评论(0) 推荐(1)
摘要: 总结: 解法一:加锁; 解法二:并发读写之前,固定vector的大小,避免动态扩容来达到lock-free; 另外:resize()和reserver()区别: resize(),预留内存,并调用构造函数; reserve(),只预留内存; 转载链接:https://www.zhihu.com/qu 阅读全文
posted @ 2022-01-10 11:10 山谷清芳 阅读(566) 评论(0) 推荐(0)
摘要: 对于函数的局部变量,会存储在所属线程的栈中; 而如果函数用到全局数据,如链表,是存储在堆上,那就存在数据安全问题,必须要对函数访问加锁。 可重入函数: 简单来讲,就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可 阅读全文
posted @ 2022-01-10 10:22 山谷清芳 阅读(358) 评论(0) 推荐(0)