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 组合以及现代二进制打包工具。对于开源项目,使用 Github Releases 和 Git 标签可轻松构建发布过程。GoReleaser 为构建和分发 Go 项目提供了便利,但无法构建 Go 以外的内容。通过破解 GoReleaser 构建过程,结合 Rust 进行跨平台构建。而 godownloader 则是 GoReleaser 的姊妹项目,可生成安装二进制文件的 curl-shell 组合脚本。探索其他 Rust 发布工具如 cargo-release、cargo-deliver 和 cargo-hublish。
Tec
166
0
0
2024-10-10

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

在 Windows 上使用 Rust 构建时,缺少 OpenSSL 导致 openssl-sys 构建失败。解决方法是通过 choco 安装 OpenSSL,并设置相应环境变量。安装完成后,需设置 OPENSSL_DIR 和 OPENSSL_LIB_DIR 环境变量,然后重启 VSCode 即可成功构建。详细步骤可参考提供的链接。这个问题的解决方法能够帮助解决在 Windows 上构建时缺少 OpenSSL 的错误。
Tec
952
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
126
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
132
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

最近在学习前端相关知识,需要使用油猴插件开发脚本。文章介绍了通过 HTTP 服务器高效地开发和调试油猴脚本的方法,避免了文件访问权限问题,并可在任意操作系统上进行开发。步骤包括安装和启动 `http-server` 模块,以及更新油猴脚本以使用 HTTP URL。开发者还应检查浏览器控制台以查看可能出现的错误信息。
Tec
132
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

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

本文介绍了如何在 Python 中使用泛型以及如何在实例方法中获取泛型参数的类型。通过分析源码和使用示例,作者详细解释了如何通过 `typing` 库的 `get_args` 和 `get_origin` 函数来获取泛型参数和原始类。文章重点讨论了如何在类内部获取泛型参数的类型,并提供了解决方法。通过分析 `Generic` 类的源码,阐明了为什么必须在 `__init__` 和 `__new__` 方法之后才能使用泛型参数。文章内容深入浅出,为 Python 开发者提供了有价值的技巧和知识。
1212
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和