Mkdir700's Note

Mkdir700's Note

Tec

SQLite 锁机制:读锁策略与并发事务分析

本文深入探讨了在使用 SQLite 数据库时的并发事务问题,重点关注了 SQLite 中的读操作锁策略。在事务外的读操作中,单条 SELECT 语句不会获取 SHARED 锁;而在事务内的读操作中,会持续获取 SHARED 锁直至事务结束。不同隔离级别也会对锁的获取产生影响。通过具体实验验证,发现了数据库锁升级的延迟特点,尤其是在 COMMIT 阶段的关键锁竞争点。这种设计既确保了数据一致性,又提升了并发性能。文章结论强调了 SQLite 锁机制的重要性,为读者提供了深入理解数据库锁与并发事务的分析。
244
0
3
2024-12-26

使用 GoReleaser 发布 Rust 二进制文件

文章介绍了作为消费者获取二进制发布的几种方式,包括原生包格式、curl shell 组合、现代二进制打包工具等。描述了打包和发布的步骤,以及使用 GoReleaser 发布 Rust 二进制文件的方法。GoReleaser 在打包和分发方面表现出色,但仅支持构建 Go 项目。提及了破解 GoReleaser 构建过程的方法,并介绍了姊妹项目 GoDownloader。探索了其他 Rust 发布工具,如 cargo-release、cargo-deliver 和 cargo-hublish。文章还提供了在 OSX 系统上进行 Rust 跨平台构建的方法。整体而言,文章介绍了通过 GoReleaser 发布 Rust 二进制文件的相关内容。
Tec
160
0
0
2024-10-10

解决在 Windows 上 openssl-sys 构建失败的问题

在 Windows 上构建 Rust 时,缺少 OpenSSL 可能会导致错误。解决方法是通过 choco 安装 OpenSSL,设置相应环境变量后重启 VSCode。这样就可以解决 openssl-sys 构建失败的问题。
Tec
933
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略

解决 Rust 测试中的并行执行冲突:保护共享资源的策略

在 Rust 开发中,测试是关键环节,但并行执行测试可能导致共享资源冲突。解决方案包括使用 serial_test crate 标记串行测试、使用互斥锁控制资源访问、创建独立测试环境隔离影响、使用测试模块和一次性初始化减少重复代码,以及使用 #[ignore] 属性标记易受影响测试。选择合适策略取决于需求和项目结构,但应意识并行测试潜在问题,确保测试可靠性和一致性。
Tec
112
0
0
2024-09-13
Rust 中的跨平台开发:处理平台特定代码和未使用代码警告

Rust 中的跨平台开发:处理平台特定代码和未使用代码警告

在 Rust 中进行跨平台开发时,使用条件编译实现平台特定代码是一种有效的方法,可以根据目标平台选择不同的代码实现。然而,这也可能导致代码分析工具错误地标记平台特定代码为"未使用"。为解决此问题,可使用 `#[allow(dead_code)]` 属性、在测试中使用平台特定代码、使用条件编译标记方法的可见性以及使用特性标志来处理未使用代码警告。这些方法能精确控制警告、保持跨平台一致性、提高代码清晰度和文档完整性。通过这些优雅的解决方案,可以有效处理平台特定代码和未使用代码警告,确保代码的可读性和跨平台兼容性。
Tec
120
0
0
2024-09-13
JS基础|let与var有什么区别?

JS基础|let与var有什么区别?

在 JavaScript 中,`var` 和 `let` 用于声明变量,区别主要在作用域和提升方面。`var` 是函数或全局作用域,`let` 是块作用域。提升上,`var` 提升到函数或全局顶部但不初始化,`let` 提升到块顶部,访问未初始化会报错。`var` 允许重复声明,成为全局对象属性;`let` 不允许重复声明,不会成为全局对象属性。总体而言,`let` 提供更严格和安全的变量声明,更适合现代 JavaScript 开发。
Tec
125
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

在学习前端知识中,遇到需要使用油猴脚本的小需求。油猴脚本可以提升网页定制能力,但在本地开发时频繁复制粘贴代码效率低。通过使用HTTP服务器,可避免文件权限问题,在任意操作系统上进行开发。步骤包括安装`http-server`模块、启动HTTP服务器和更新油猴脚本以使用HTTP URL。调试可在浏览器控制台查看错误信息。
Tec
128
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

该文章讨论了如何在 Python 中使用泛型以及如何在实例方法中获取泛型参数的类型。通过深入分析 `typing` 库中的 `get_args` 和 `get_origin` 函数,可以实现获取泛型参数和原始类的功能。文章还简要分析了 `Generic` 类的源码,解释了为什么必须在 `__init__, __new__` 之后才能使用。通过示例代码和源码解读,帮助读者更好地理解 Python 中泛型的概念和用法。
1206
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和