Mkdir700's Note

Mkdir700's Note

Tec

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

在 SQLite 数据库中,读操作的锁获取策略随上下文变化,在事务外不会获取 SHARED 锁,而在显式事务内会持续获取 SHARED 锁,不同隔离级别也影响锁行为。实验验证显示 UPDATE 操作延迟获取 EXCLUSIVE 锁,造成事务 A 在 COMMIT 时被阻塞,验证了 SQLite 的延迟锁升级设计。这种设计保证了数据一致性同时提升了并发性能。
259
0
3
2024-12-26

使用 GoReleaser 发布 Rust 二进制文件

消费者获取二进制发布的方式包括操作系统原生包格式、语言原生包格式、curl shell 组合和现代二进制打包工具。打包和发布的步骤包括跨平台编译、打包、摘要、上传和设置分发工件。GoReleaser支持Go项目打包和分发,但不支持构建Go以外的项目。通过在OSX主机上使用cross进行Rust跨平台编译,可以方便生成Linux和OSX构建。GoReleaser的破解方法可实现Rust构建,并通过dummy.go文件满足GoReleaser。另外提到的GoDownloader可以生成curl-shell组合并免费提供安装二进制文件的shell脚本。探索其他Rust发布工具如cargo-release、cargo-deliver和cargo-hublish。
Tec
173
0
0
2024-10-10

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

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

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

在 Rust 开发中,测试是确保代码质量的关键环节。然而,并行执行测试可能导致共享资源冲突。为解决这一问题,可以使用 serial_test crate 标记应该串行执行的测试,也可使用互斥锁确保资源访问单一。另外,创建独立的测试环境和使用一次性初始化也是有效策略。对于受并行执行影响的测试,可使用 #[ignore] 属性标记并单独运行。选择合适的策略取决于项目需求,重要的是意识到并行测试可能带来的问题并采取措施保证测试可靠性和一致性。
Tec
118
0
0
2024-09-13
Rust 中的跨平台开发:处理平台特定代码和未使用代码警告

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

在 Rust 中进行跨平台开发时,可以使用条件编译实现平台特定代码,如根据目标平台选择不同的实现。然而,这可能导致某些代码被错误标记为"未使用",可以采用使用`#[allow(dead_code)]`属性、在测试中使用平台特定代码、使用条件编译标记方法的可见性以及使用特性标志等策略来解决。其中,使用条件编译属性抑制特定平台的未使用代码警告是一种精确控制、保持一致性、保持代码清晰度和文档完整性的方法,解决了静态分析工具的警告问题,同时保持了代码的跨平台兼容性和可读性。这些方法构成了处理平台特定代码和未使用代码警告的优雅解决方案。
Tec
130
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
140
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

本文介绍了如何通过使用 HTTP 服务器高效地开发和调试油猴脚本。通过安装和启动 `http-server`,以及更新油猴脚本使用 HTTP URL 的步骤,可以避免文件访问权限问题,实现跨操作系统开发。同时,强调了在浏览器控制台中检查错误信息的重要性。这种方法可以提升开发效率,特别适用于前端开发人员需要频繁调试油猴脚本的场景。
Tec
141
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

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

本文介绍了在 Python 中如何使用泛型以及如何在实例方法内获取泛型参数的类型。通过对 `typing` 库中 `get_args` 和 `get_origin` 函数的使用,可以获取类的泛型参数以及原始类。在 `Generic` 源码分析中,解释了为什么必须在 `__init__, __new__` 方法之后才能使用。通过简单的分析 `Generic` 类的源码和语法糖 `__class_getitem__`,展示了泛型的原理。最后通过示例演示了如何在实例方法内部获取泛型参数的类型。文章关键词:Python 泛型 - 如何在实例方法中获取泛型参数 T 的类型?, Python, Python技巧.
1225
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和