首页
学习
活动
专区
工具
TVP
发布

代码手工艺人

专栏作者
45
文章
59554
阅读量
11
订阅数
std::shared_ptr 的线程安全性 & 在多线程中的使用注意事项
在讨论之前,我们先理清楚这样的一个简单但却容易混淆的逻辑。 std::shared_ptr 是个类模版,无法孤立存在的,因此实际使用中,我们都是使用他的具体模版类。这里使用 std::shared_ptr 来举例,我们讨论的时候,其实上是在讨论 std::shared_ptr 的线程安全性,并不是 SomeType 的线程安全性。
JoeyBlue
2023-03-16
2K0
C++ Lambda 本质 & 变量捕获
C++ 11 引入 lambda 之后,可以很方便地在 C++ 中使用匿名函数,这篇文章主要聊聊其背后的实现原理以及有反直觉的变量捕获机制。在阅读本文之前,需要读者对 C++ lambda 有一个简单的了解。
JoeyBlue
2023-02-21
1.2K0
C++ Postfix Completion VSCode 插件
元旦假期无聊做了一个 VSCode 的插件,主要功能是对一些常用的场景进行补全,具体介绍可跳转到 GitHub 源码 或者 VSCode 扩展市场 VSCode extension Marketplace 浏览。
JoeyBlue
2023-01-08
5300
LLVM 工具系列 - Address Sanitizer 实现原理(2)
上篇文章 「Address Sanitizer 基本原理介绍及案例分析」里我们简单地介绍了一下 Address Sanitizer 基础的工作原理,这里我们再继续深挖一下深层次的原理。
JoeyBlue
2023-01-08
5510
LLVM 工具系列 - Address Sanitizer 基本原理介绍及案例分析(1)
LLVM 提供了一系列的工具帮助 C/C++/Objc/Objc++ 开发者检查代码中可能的潜在问题,这些工具包括 Address Sanitizer,Memory Sanitizer,Thread Sanitizer,XRay 等等, 功能各异。
JoeyBlue
2023-01-08
1.8K0
C++ enable_shared_from_this 具体实现
C++ 中使用 std::shared_ptr 智能指针不当有可能会造成循环引用,因为 std::shared_ptr 内部是基于引用计数来实现的, 当引用计数为 0 时,就会释放内部持有的裸指针。但是当 a 持有 b, b 也持有 a 时,相当于 a 和 b 的引用计数都至少为 1,因此得不到释放,RAII 此时也无能为力。这时就需要使用 weak_ptr 来打破循环引用。
JoeyBlue
2022-11-21
8630
AArch64 学习(二) 函数调用 (Function Call Convention)
本系列的第一篇 中介绍了 AArch64 的基础指令、进程内存布局以及基础栈操作 等. 本文该系列的第二篇, 主要聊聊函数调用, 涉及到的就是 Function Call Convention. 初衷还是尽可能 “浅入深出” 地 got 到语言背后的本质, 这不是一个手册, 所以不是完备的.
JoeyBlue
2022-06-06
8880
AArch64 学习(一) 基础指令, 内存布局, 以及基础栈操作
ARM 是 高级-RISC(精简指令集)-机器 的缩写, 是精简指令集架构的家族. 同时 Arm Ltd. 也是开发和设计、授权这项技术的公司名称.
JoeyBlue
2022-06-06
1.9K0
函数指针、函数对象、lambda 表达式、std::function
lambda 表达式内部会创建一个上面所说的函数对象, 不过是匿名的, 只有编译器知道类名是什么. lambda 可以捕获外部的变量, 都会转换为匿名函数对象的属性值来保存.
JoeyBlue
2022-05-19
9770
函数指针、函数对象、lambda 表达式、std::function
lambda 表达式内部会创建一个上面所说的函数对象, 不过是匿名的, 只有编译器知道类名是什么. lambda 可以捕获外部的变量, 都会转换为匿名函数对象的属性值来保存.
JoeyBlue
2022-05-18
6590
深入理解 AudioUnit(二) ~ Mixing Unit & Effect Unit & Converter Unit
本系列的 第一篇 中介绍到了 AudioUnit 中和系统硬件交互的 IO Unit, 以及如何使用它进行音频的采集和播放. 本文是该系列的第二篇, 将会介绍 AudioUnit 中另外 四类 非常重要的 AudioUnit: Mixing 、 Effect Unit 、 Converter Unit 以及 Generator Unit.
JoeyBlue
2022-03-30
9580
深入理解 AudioUnit(一) ~ IO Unit 结构和运行机制
Apple 平台上如果涉及到音频采集, 很难避开 AudioUnit 这个工具库, AudioUnit 是 Audio Toolbox 下的一套有年头的 C API, 功能相对也比较强大, 虽然苹果最近几年推出并逐渐在其基础之后完善了一套 AVAudioUnit 的 OC/Swift 的 API, 但 AudioUnit 依然有很广泛的使用, 而且了解这套 C API 也对理解 AVAudioUnit 内部的实现和使用有很大的帮助.
JoeyBlue
2022-03-30
2K0
结合 AppRTC 源码分析 WebRTC 建立连接的过程
这两年来,WebRTC 越来越多地出现在人们的视野,在在线教育,在线医疗等领域的应用也越来越多。大家研究 WebRTC 的热情也越来越高涨,不过 WebRTC 的入门门槛个人觉得稍微有些高,特别是各种概念,比如 NAT 穿越,ICE,STUN,TURN,Signaling server等等,刚开始可能会觉得比较繁杂,不易理解。然后建立连接的整个过程,异步调用比较多,很容易搞混。那么这篇文章里我们会根据 WebRTC 的官方 demo AppRTC 的 iOS 版本来分析一下 WebRTC 从进入房间到建立音视频连接的过程,为了便于了解,我们本次的讨论不涉及到底层的具体实现。
JoeyBlue
2021-09-07
1.5K0
iOS CoreAudio AudioStreamBasicDescription 音频格式概念简介
AudioStreamBasicDescription 简称 ASBD,ASBD 是 CoreAudio 用来指定线性PCM格式,或者使用 CBR 编码的等大小声道的格式。如果使用的是 VBR,或者使用非等大小的 CBR,需要对每个packet独立设置 AudioStreamPacketDescription进行描述。
JoeyBlue
2021-09-07
1.3K0
Linux/Unix 文件的 atime ctime mtime 属性
Linux/Unix 系统会为每个文件保存一些时间戳信息,我们可以根据这些时间戳来判断文件什么时候被读取过,什么时候被修改过内容,以及什么时候被修改过文件的权限。以下是 atime,ctime,mtime 三个时间戳的介绍。
JoeyBlue
2021-09-07
5.1K1
Powerline fonts & Nerd fonts 简介
作为程序员,和命令行打交道很频繁,设置一个赏心悦目的命行行 prompt 或者 Vim 的 status line 主题就很有必要了,不过一般这些漂亮的主题都会用到一些 icon 字符,这些 icon 字符一般的字体里是没有的,今天我们就来聊聊一些带有 icon 字符的字体。
JoeyBlue
2021-09-07
4.1K0
FFmpeg avformat_find_stream_info() 函数源码解析
先来看一下 avformat_find_stream_info() 的头文件里的注释对该函数的介绍,本文我们基于 FFmpeg n4.2 版本的源码分析。
JoeyBlue
2021-09-07
2.2K0
Karabiner-Elements 之 介绍和使用(part 1)
Karabiner-Elements (下面我们简称为Karabiner)官网对自己的描述是 “A powerful and stable keyboard customizer for macOS.”,我使用下来的感受是 Karabiner-Elements 是 macOS 平台上一款非常强大的键位映射工具,没有吹嘘的成分,买家秀和卖家秀是一样的。
JoeyBlue
2021-09-07
6.7K1
WWDC 21 - 使用 AVQT 评估视频质量
AVQT 是 Advanced Video Quality Tool 的缩写,是苹果在 WWDC 21 上推出的一款评估视频感知质量的工具。
JoeyBlue
2021-09-07
1.7K0
WWDC 21 - 探索使用 VideoToolbox 进行低延迟视频编码
低延迟编码对于很多视频app来说都很重要,特别是对实时音视频场景。苹果在 WWDC 2021 在 VideoToolbox 里推出了一种新的低延迟编码模式。低延迟编码模式的主要目的是为实时通讯场景优化现有的编码流程。
JoeyBlue
2021-09-07
2.2K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档