Mkdir700's Note

Mkdir700's Note

Tec

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

本文深入探讨了 SQLite 数据库中关于读操作的锁获取策略,包括事务外的读操作和显式事务内的读操作。通过一个具体的实验验证了并发事务中的锁竞争情况,展示了事务 A 在更新操作时不受阻塞,但在提交时失败的情况。运行结果表明 SQLite 的锁升级是延迟的,写操作的内存更改和实际文件写入是分离的,COMMIT 阶段是关键的锁竞争点。这种设计保证了数据一致性并提供了较好的并发性能。文章关键词:数据库锁, SQLite, SQLite 锁机制:读锁策略与并发事务分析。
274
0
3
2024-12-26

使用 GoReleaser 发布 Rust 二进制文件

作为消费者,获取二进制发布的方式可以通过操作系统原生包格式、语言原生包格式、curl shell 组合或现代二进制打包工具。打包和发布包括跨平台编译、打包、摘要验证、上传和设置分发工件。GoReleaser支持Go项目的打包和分发,但不支持构建Go以外的项目。通过在OSX和Linux主机上使用docker进行Rust跨平台编译,可以方便地生成Linux和OSX构建。GoReleaser的破解方法是通过dummy.go文件满足GoReleaser并在后阶段钩入Rust构建。另外,加分项GoDownloader可以生成curl-shell组合来分发二进制文件。探索其他Rust发布工具可以看看cargo-release, cargo-deliver和cargo-hublish。
Tec
183
0
0
2024-10-10

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

在 Windows 平台构建 Rust 项目时遇到 `openssl-sys` 缺失错误,需要手动安装 OpenSSL。使用 choco 安装 OpenSSL,并设置环境变量 `OPENSSL_DIR` 和 `OPENSSL_LIB_DIR`。重启 VSCode 后即可成功构建项目。详细步骤和信息可参考提供的链接。
Tec
1042
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略

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

在 Rust 开发中,测试是确保代码质量的关键环节。并行执行测试可能导致共享资源冲突,造成意外行为或测试失败。解决方案包括使用 serial_test crate 进行串行执行测试、互斥锁控制资源访问、创建独立测试环境、使用测试模块和一次性初始化,以及使用 #[ignore] 属性标记特别受影响的测试。选择适合项目需求的策略至关重要,保证测试可靠性和一致性。
Tec
124
0
0
2024-09-13
Rust 中的跨平台开发:处理平台特定代码和未使用代码警告

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

在 Rust 中进行跨平台开发时,使用条件编译实现平台特定代码是常见的做法。借助强大的条件编译功能,可以根据不同目标平台选择不同的代码实现,保持接口一致性。然而,这可能导致静态分析工具错误标记特定代码为"未使用",可能会影响代码质量。解决这个问题的策略包括使用 `#[allow(dead_code)]` 属性、在测试中使用平台特定代码、使用条件编译标记方法的可见性以及使用特性标志。通过这些方法,可以精确控制平台特定代码的警告,保持跨平台一致性,提高代码清晰度和文档完整性。这些方法为处理平台特定代码和未使用代码警告提供了优雅解决方案。
Tec
140
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
146
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

学习前端知识时遇到了使用油猴插件的小需求,油猴脚本可以定制网页。作者提出了使用 HTTP 服务器快速开发和调试油猴脚本的方法,通过安装并启动 http-server 模块,并更新油猴脚本使用 HTTP URL。这样可避免文件访问权限问题,适用于任意操作系统。在浏览器控制台检查可能的错误信息。通过这些步骤可以高效地开发和调试油猴脚本。
Tec
152
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

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

本文介绍了如何在Python中使用泛型,通过示例演示了如何在实例方法中获取泛型参数T的真实类型。首先说明了通过`typing`库的`get_args`和`get_origin`函数可以实现获取泛型参数和原始类的功能。然后详细介绍了在实例方法内部获取原始类及泛型参数数据类型的方法。最后简要分析了`Generic`源码实现机制,说明了为什么必须在`__init__, __new__`方法之后才能使用,并通过源码解释了`__class_getitem__`和`__call__`方法的作用。文章关键词:Python泛型 - 如何在实例方法中获取泛型参数T的类型?, Python, Python技巧。
1241
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和