Mkdir700's Note
Mkdir700's Note
Slow is Smooth, Smooth is Fast.
首页
标签
归档
友链
关于
首页
标签
归档
友链
关于
Tec
wiki
Tec
Python
2
算法题
8
数据库
3
爬虫
9
随笔
Web3
未定义
SQLite 锁机制:读锁策略与并发事务分析
本文深入探讨了SQLite的锁机制,特别是关于读操作的锁获取策略。在自动提交模式下,单条SELECT语句不会获取SHARED锁;而在显式事务中,READ UNCOMMITTED隔离级别下读操作不获取锁。通过实验验证,展示了事务A能执行UPDATE操作但在尝试COMMIT时失败的情况。文章总结了SQLite的锁升级是延迟的特点,写操作的内存更改和实际文件写入分离,以及COMMIT阶段是关键的锁竞争点。这种设计既保证了数据一致性,又提高并发性能。
Tec
数据库
SQLite
数据库锁
242
0
3
2024-12-26
使用 GoReleaser 发布 Rust 二进制文件
消费者获取二进制发布的方式包括操作系统原生包格式、语言原生包格式、curl shell 组合和现代二进制打包工具。打包和发布二进制文件需要跨平台编译、打包、摘要验证、上传和设置分发工件等步骤。GoReleaser用于构建Go项目并支持打包、校验和上传功能。然而,GoReleaser不支持构建Go之外的任何东西。针对此问题可通过在GoReleaser中加入dummy.go文件以支持Rust构建。此外,godownloader是GoReleaser的姊妹项目,可生成curl-shell组合用于分发二进制文件。探索其他类似于GoReleaser的Rust发布工具可参考cargo-release、cargo-deliver和cargo-hublish。对于从OSX进行Rust跨平台构建,可考虑使用docker-rustup。
Tec
158
0
0
2024-10-10
解决在 Windows 上 openssl-sys 构建失败的问题
在构建 Rust 项目时,遇到在 Windows 上缺少 OpenSSL 导致 openssl-sys 构建失败的问题。解决方法是通过 choco 安装 OpenSSL,设置环境变量 OPENSSL_DIR 和 OPENSSL_LIB_DIR,并在 VSCode 中重启后重新构建。详细步骤可参考提供的链接。这些操作可以解决 Windows 平台下 OpenSSL 缺失导致构建失败的情况。
Tec
Rust
917
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略
在 Rust 开发中,测试是确保代码质量的关键环节。而并行执行测试可能导致共享资源冲突。解决方案包括使用 serial_test crate 进行串行执行、互斥锁保护资源访问、创建独立的测试环境、使用测试模块和一次性初始化、以及使用 #[ignore] 属性标记问题测试。选择合适的策略取决于具体需求,但要意识到并行测试可能带来的潜在问题,并采取适当措施确保测试的可靠性。
Tec
Rust
110
0
0
2024-09-13
Rust 中的跨平台开发:处理平台特定代码和未使用代码警告
在 Rust 中进行跨平台开发时,需要为不同操作系统提供不同实现,并处理由此产生的代码分析问题。使用条件编译实现平台特定代码,例如为不同平台选择不同代码实现,保持接口一致。然而,可能遇到未使用代码警告问题。解决方法包括使用 #[allow (dead_code)] 属性忽略警告、在测试中使用平台特定代码确保使用、使用条件编译标记方法可见性以及使用特性标志控制方法编译。另一种方法是使用条件编译属性抑制特定平台的未使用代码警告,精确控制、保持跨平台一致性、保持代码清晰度和文档完整性。这些方法保持了代码的跨平台兼容性和可读性,是处理平台特定代码的一个优雅解决方案。
Tec
118
0
0
2024-09-13
JS基础|let与var有什么区别?
在 JavaScript 中,var 和 let 用于声明变量,但它们有作用域和提升方面的区别。var 是函数作用域或全局作用域,let 是块作用域。var 变量提升至函数或全局作用域顶部,而 let 提升至块作用域顶部。var 允许重复声明,而 let 不允许。使用 var 声明的全局变量会成为全局对象属性,而 let 不会。let 提供更严格的作用域控制和更安全的变量声明,更适合现代 JavaScript 开发。
Tec
前端
JS
基础
124
0
0
2024-07-12
使用 http-server 调试油猴脚本
本文介绍了如何高效地开发和调试油猴脚本,通过使用 HTTP 服务器避免文件访问权限问题,并跨操作系统进行开发。具体步骤包括安装并启动 `http-server` 模块,更新油猴脚本以使用 HTTP URL。在浏览器控制台检查错误信息以确保调试效果。这对学习前端知识、油猴脚本开发都有实际应用意义。
Tec
前端
油猴脚本
127
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?
本文讨论了在 Python 中如何获取泛型参数 T 的类型,首先介绍了如何通过 typing 库的 get_args 和 get_origin 函数来获取类的泛型参数和原始类,然后详细解释了在实例方法中获取泛型参数的类型,并提供了解决方法。接着,对 Generic 类的源码进行了简要分析,说明了为什么必须在 \__init\__, \__new\__ 之后才能使用。最后,通过示例和代码解析阐述了 _GenericAlias、\__call\__ 方法和 get_args 的关系,帮助读者更好地理解泛型参数和类的使用方式。
Python
Tec
Python
Python技巧
1205
0
1
2023-02-23
1143. 最长公共子序列
算法题
Tec
动态规划
573
0
0
2022-10-03
1508. 子数组和排序后的区间和
Tec
算法题
前缀和
矩阵
二分查找
619
0
2
2022-09-11
下一页