Mkdir700's Note
Mkdir700's Note
Slow is Smooth, Smooth is Fast.
首页
标签
归档
友链
关于
首页
标签
归档
友链
关于
最新文章
Tokio:为什么异步互斥锁比同步互斥锁更"昂贵"
The feature that the async mutex offers over the blocking mutex is the ability to keep it locked across an .await point. This makes the async mutex mo
Rust
181
0
0
2025-03-15
Tokio:应该使用哪种 mutex?
Mutex是一种同步原语,用于保护共享数据。标准库互斥锁会阻塞线程,而异步互斥锁会挂起当前任务而不会阻塞整个线程。标准库互斥锁不安全地跨越.await点持有锁,可能导致死锁,而异步互斥锁设计可以跨越.await点持有锁。标准库互斥锁性能开销较小适合短时间持有,而异步互斥锁由于支持异步操作性能开销较大适合需要执行异步操作的场景。最佳实践是默认选择标准库互斥锁,除非有特殊需求,还应考虑包装模式和对于IO资源使用专门的管理任务。Tokio与Rust相关。
Rust
238
0
1
2025-03-15
SOLID 原则详解
SOLID 原则详解 SOLID是面向对象设计中五个重要原则的首字母缩写,由Robert C. Martin(也被称为"Uncle Bob")提出。这些原则旨在使软件设计更加灵活、可维护和可扩展。下面我将详细解释每一个原则及其实际应用。 S - 单一职责原则 (Single Responsibili
架构设计
155
0
0
2025-03-14
常见设计模式 Python 实现
本文介绍了三种常见的设计模式在 Python 中的实现:单例模式、工厂模式和观察者模式。在单例模式中,实现了一个数据库连接池管理器,确保系统中只有一个连接池实例;在工厂模式中,设计了支持多种数据格式解析的文件处理系统,包括实现了 CSV、JSON、XML 和 YAML 文件格式的解析器;在观察者模式中,实现了一个股票市场监控系统,支持多种类型的观察者,如邮件通知、短信通知和应用内通知。这些设计模式为软件架构提供了灵活性和可扩展性。
架构设计
127
0
0
2025-03-14
SQLite 锁机制:读锁策略与并发事务分析
引言 在使用 SQLite 数据库时,我们经常会遇到并发事务的问题。本文将通过一个具体的实验来深入探讨 SQLite 的锁机制,特别是关于读操作的锁获取策略。 SQLite 中的读操作锁策略 SQLite 中的读操作获取锁的策略会根据不同的上下文而变化: 1. 事务外的读操作 在自动提交(autoc
Tec
数据库
SQLite
数据库锁
284
0
3
2024-12-26
使用 GoReleaser 发布 Rust 二进制文件
作为消费者,我们喜欢通过以下方式之一获取二进制发布: 操作系统原生包格式,例如 deb、rpm 等。 语言原生包格式,例如 pip、npm 等。通过这种方式提供纯二进制文件并不常见,但有些项目会这样做,例如 puppeteer,它会下载最新的无头 Chrome 二进制文件。 使用 curl shel
Tec
192
0
0
2024-10-10
解决在 Windows 上 openssl-sys 构建失败的问题
问题 在 Windows 下构建时抛出了下方错误,意思就是缺少 OpenSSL 这个玩意儿,如果在 Linux 平台直接用包管理工具安装就 OK 了,但是在 Windows 平台则需要手动操作。 OPENSSL_DIR unset note: vcpkg did not find opens
Tec
Rust
1076
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略
在 Rust 开发中,测试是确保代码质量的关键环节。然而,并行执行测试可能导致共享资源冲突。解决方案包括使用 serial_test crate 标记应该串行执行的测试、使用互斥锁控制资源访问、创建独立的测试环境隔离测试、使用测试模块和一次性初始化减少重复代码以及使用 #[ignore] 属性分离问题测试。选择合适的策略取决于具体需求和项目结构,但重要的是意识到并行测试可能带来的问题,并采取适当措施确保测试可靠性。
Tec
Rust
126
0
0
2024-09-13
Rust 中的跨平台开发:处理平台特定代码和未使用代码警告
在 Rust 中进行跨平台开发时,我们经常需要为不同的操作系统提供不同的实现。同时,我们也需要处理一些由此产生的代码分析问题。本文将探讨如何有效地处理这些情况。 使用条件编译实现平台特定代码,Rust 提供了强大的条件编译功能,允许我们根据目标平台选择不同的代码实现。例如: pub struct P
Tec
148
0
0
2024-09-13
Airpods 左右固件版本不一致
问题 我的耳机是 airpod3,刚买来的半年一直都是正常的,之后右边耳机总是会断开,也就是总是只有左边这只耳机有声音。 然后根据这里的步骤尝试忘记并重连 airpods,然后莫名奇妙一对耳机,建立两个耳机连接,我这里忘记截图了,总之,在设置界面能看到两个 airpods,实际上就是两个耳机分别建立
未定义
数码
990
0
0
2024-07-18
上一页
下一页