Mkdir700's Note

Mkdir700's Note

Tec

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

本文深入探讨了SQLite的锁机制,特别是关于读操作的锁获取策略。在事务外的读操作中,单条SELECT语句不会获取SHARED锁;在显式事务内的读操作中,会持续获取SHARED锁直至事务结束;不同隔离级别会对读操作的锁获取产生影响。通过实验验证了SQLite的锁升级是延迟的,写操作的内存更改和实际写入是分离的。事务的COMMIT阶段是锁竞争的关键点。这种设计既保证了数据一致性,又提供了良好的并发性能。文章关键词:数据库锁, SQLite, SQLite锁机制,读锁策略与并发事务分析。
249
0
3
2024-12-26

使用 GoReleaser 发布 Rust 二进制文件

文章详细介绍了如何使用不同的方式获取二进制发布,包括操作系统原生包格式、语言原生包格式、curl shell 组合以及现代二进制打包工具等。在打包和发布二进制文件时,需要进行跨平台编译、打包、对包进行摘要和上传等步骤。文章提到了使用 GoReleaser 和 Rust 进行打包和分发,GoReleaser 可以方便地进行构建、生成校验和、上传到不同平台等操作。针对 Rust 跨平台构建,可以使用 docker-rustup 等工具。另外,还介绍了破解 GoReleaser 构建过程的方法以及其他 Rust 发布工具的探索。
Tec
165
0
0
2024-10-10

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

在 Windows 上构建 Rust 时若遇到 openssl-sys 缺失的错误,需手动安装 OpenSSL。通过 choco 安装 openssl 后,设置环境变量 OPENSSL_DIR 和 OPENSSL_LIB_DIR。最后在 VSCode 中重新构建即可解决问题。详细安装步骤和引用链接可参考文章关键词提供的链接。
Tec
949
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略

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

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

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

在 Rust 中进行跨平台开发时,通过条件编译实现平台特定代码,保持接口一致性。然而,会遇到静态分析工具错误标记未使用代码的问题。为解决此问题,可使用 #[allow(dead_code)] 属性、在测试中使用平台特定代码、使用条件编译标记方法的可见性和特性标志等策略。其中,使用条件编译属性抑制特定平台的未使用代码警告,精确控制在特定平台上抑制警告,保持跨平台一致性、代码清晰度和文档完整性,是处理平台特定代码的一个优雅解决方案。
Tec
125
0
0
2024-09-13
JS基础|let与var有什么区别?

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

在 JavaScript 中,var 和 let 用于声明变量,但它们在作用域和提升方面有重大区别。var 是函数或全局作用域,let 是块作用域。var 提升到顶部但不初始化,let 提升到块顶部并导致 ReferenceError。var 允许重复声明,let 不允许。用 var 声明的全局变量成为全局对象属性,let 不会。let 提供更严格的作用域控制,更安全,更适合现代 JavaScript 开发。
Tec
130
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

最近学习前端知识时,遇到需求用到油猴插件。本文介绍了如何高效地开发和调试油猴脚本,使用 HTTP 服务器可避免文件权限问题,步骤包括安装 `http-server` 模块、启动服务器以及更新油猴脚本使用 HTTP URL。不使用 `@require` 标签是为了让页面每次加载都重新加载 JS 脚本。最后,在目标网页上检查控制台是否有错误信息。
Tec
131
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

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

本文介绍了在 Python 中如何通过使用 `typing` 库中的 `get_args` 和 `get_origin` 函数来获取类的泛型参数信息。通过 `get_args` 可以获取类的泛型参数,通过 `get_origin` 可以获取类型的原始类。文章还通过示例演示了在实例方法中如何获取泛型参数 `T` 的真实类型,以及简要分析了 `Generic` 类的源码实现。文章关键词包括 Python 泛型、Python 技巧。
1210
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和