jiang

工具就是生产力


  • 首页

  • 分类

  • 归档

  • 标签

  • 相册

  • 关于

  • 搜索

acquire和release语意

发表于 2020-02-16 | 分类于 多线程 |
翻译自:https://preshing.com/20120913/acquire-and-release-semantics/ 略有删改 一般而言,在无锁编程中,线程可以通过两种方式操纵共享内存: 相互竞争资源 将信息从一个线程传递到另一个线程。 获取和释放语义对于后者至关重要:在线程之间 ...
阅读全文 »

获取和释放屏障

发表于 2020-02-16 | 分类于 多线程 |
翻译自:https://preshing.com/20130922/acquire-and-release-fences/ 我认为,获取(acquire fence, afence)和释放屏障(release fence, rfence)目前在网络上还是被误解了。太糟糕了,因为C ++ 11标准 ...
阅读全文 »

内存屏障就像源码控制操作一样

发表于 2020-02-16 | 分类于 多线程 |
翻译自:https://preshing.com/20120710/memory-barriers-are-like-source-control-operations/ 略有修改 如果使用源代码控制,那么您将逐渐理解内存顺序,这是使用C,C ++和其他语言编写无锁代码时的重要考虑因素。[PS: ...
阅读全文 »

多线程之内存屏障

发表于 2020-02-15 | 分类于 多线程 |
什么是内存屏障(Memory Barrier)内存屏障是一个CPU指令。它是这样一条指令: 确保一些特定操作执行的顺序; 影响一些数据的可见性(可能是某些指令执行后的结果)。 CPU核内部包含了多个执行单元。例如,现代Intel CPU包含了6个执行单元,可以组合进行算术运算,逻辑条件判断及内 ...
阅读全文 »

C++11线程库使用

发表于 2020-02-15 | 分类于 C++ |
从C++11开始,在STL中提供了thread模块对操作系统的C线程库进行了封装,避免了跨平台问题。但是,很多人觉得这个库封装的不够好。 线程同步互斥量C++11中提供了如下4种语义的互斥量(mutex): std::mutex:独占的互斥量,不能递归使用。 std::timed_mutex:带超 ...
阅读全文 »

【C++】成员函数的重载、覆盖与隐藏

发表于 2020-02-02 | 分类于 C++ |
成员函数的重载(overload)、覆盖(override)与隐藏很容易混淆,梳理如下: 一、重载《高质量C++/C编程指南》已经清晰的列出了重载函数的特性: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual关键字可有可无。因为重载的函数之间参数不同, ...
阅读全文 »

【C++】临时对象

发表于 2020-02-02 | 分类于 C++ |
一、临时量与临时对象临时量: 内置类型生成的临时量是常量(临时量,寄存器带出来)。 自定义类型生成的临时量是变量 ,在内存中。 临时对象: 临时对象是系统临时分配的对象,在没主动声明所需对象而又使用其功能时产生的 注意: 临时对象的生存周期只在本条语句。 二、哪些情况产生临时量2.1 调用构 ...
阅读全文 »

【LeetCode】215 数组中的第K个最大元素

发表于 2020-01-15 | 分类于 LeetCode |
问题描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 12输入: [3,2,1,5,6,4] 和 k = 2输出: 5 示例 2: 12输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: ...
阅读全文 »

【LeetCode】 241. 为运算表达式设计优先级

发表于 2020-01-14 | 分类于 LeetCode |
问题描述给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。 示例 1: 12345输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1 ...
阅读全文 »

LeetCode之75. 颜色分类

发表于 2020-01-14 | 分类于 LeetCode |
问题描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 12输入: [2,0,2,1,1, ...
阅读全文 »
123…6

56 日志
19 分类
21 标签
GitHub E-Mail
© 2026 Jiang.G.F
0%