Mkdir700's Note

Mkdir700's Note

Tec

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

在使用SQLite数据库时经常会遇到并发事务问题,本文通过实验深入探讨SQLite的锁机制,重点讨论了读操作的锁获取策略。SQLite中的读操作获取锁的策略因上下文不同而变化,包括事务外的读操作和显式事务内的读操作等。通过一个实验验证了并发事务中可能出现的锁竞争问题,展示了SQLite的锁升级延迟特性。文章总结了SQLite的锁升级机制延迟、写操作内存更改与实际写入分离、事务提交阶段的关键竞争点等特点,体现了SQLite在保证数据一致性和提高并发性能方面的设计优点。
254
0
3
2024-12-26

使用 GoReleaser 发布 Rust 二进制文件

消费者获取二进制发布的方式包括操作系统原生包格式、语言原生包格式、curl shell 组合以及现代二进制打包工具。打包和发布需要跨平台编译、打包、摘要验证、上传到提供者和设置分发工件。GoReleaser支持构建Go项目并能打包、上传到Github releases或Amazon S3,但无法构建Go以外的内容。使用dummy.go文件和后阶段钩入可破解GoReleaser构建过程,而godownloader可生成shell脚本。探索其他类似于GoReleaser的Rust发布工具,如cargo-release、cargo-deliver和cargo-hublish。如果需要在OSX进行Rust跨平台构建,可使用docker-rustup。
Tec
170
0
0
2024-10-10

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

在 Windows 上构建 Rust 项目时遇到 openssl-sys 报错缺少 OpenSSL 的问题。需要手动安装 OpenSSL,推荐使用 choco 安装,并设置环境变量。安装完成后,设置 OPENSSL_DIR 和 OPENSSL_LIB_DIR 环境变量,然后重启 VSCode 即可成功构建。详细解决方法可查看提供的参考链接。
Tec
977
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略

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

在 Rust 开发中,测试是确保代码质量的关键环节。并行执行测试可能导致共享资源冲突问题,影响测试的有效性。为解决这一问题,可以使用 serial_test crate 进行测试串行执行,使用互斥锁控制资源访问,创建独立的测试环境隔离测试,或者利用测试模块和一次性初始化共享初始化逻辑。另外,可以使用 #[ignore] 属性标记并独立运行特定测试。选择合适的策略可有效保护共享资源,确保测试的可靠性和一致性。
Tec
114
0
0
2024-09-13
Rust 中的跨平台开发:处理平台特定代码和未使用代码警告

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

在 Rust 中进行跨平台开发时,使用条件编译可实现平台特定代码,保持接口一致性。然而,静态分析工具可能误标记代码为"未使用"。解决方法包括使用 #[allow(dead_code)] 属性、在测试中使用平台特定代码、条件编译标记方法的可见性、使用特性标志以及使用条件编译属性抑制特定平台的未使用代码警告。这些方法精确控制警告、保持跨平台一致性、提高代码清晰度和文档完整性,是处理平台特定代码和未使用代码警告的优雅解决方案。
Tec
129
0
0
2024-09-13
JS基础|let与var有什么区别?

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

在 JavaScript 中,var 和 let 用于声明变量,区别主要在作用域和提升方面。var 是函数作用域或全局作用域,而 let 是块作用域。var 变量会提升但不会初始化,let 变量在访问前必须初始化。var 允许重复声明,let 不允许。var 的全局变量成为全局对象属性,let 不会。综上,let 提供更严格的作用域控制与安全声明方式,更适合现代 JavaScript 开发。
Tec
136
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

学习前端知识时碰到油猴脚本需求,油猴脚本定制化网页能力强。为高效开发调试油猴脚本,可通过 HTTP 服务器避免权限问题。步骤包括安装和启动 http-server 模块,更新脚本使用 HTTP URL,并检查控制台错误信息。 F12 打开开发者工具检查。
Tec
136
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

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

本文介绍了如何在Python中使用泛型,以及如何在实例方法中获取泛型参数T的类型。通过分析源码,可以使用typing库中的get_args和get_origin函数来实现这一功能。get_args用于获取类的泛型参数,get_origin用于获取类型的原始类。文章提供了示例代码和详细的解释,帮助读者理解泛型类型的内部工作原理。文章关键词:Python, Python泛型, Python技巧。
1220
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和