Mkdir700's Note

Mkdir700's Note

Tec

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

在SQLite数据库中,读操作获取锁的策略取决于不同的上下文情况,包括事务外的读操作和显式事务内的读操作。实验验证显示,虽然事务A可以执行UPDATE操作但在提交时失败,最终数据库状态未改变。SQLite的锁升级是延迟的,写操作的内存更改和文件写入是分离的,COMMIT阶段是关键的锁竞争点。这种设计在保证数据一致性的同时提高了并发性能。
273
0
3
2024-12-26

使用 GoReleaser 发布 Rust 二进制文件

消费者获取二进制发布的方式包括操作系统原生包格式、语言原生包格式、使用 curl shell 组合、现代二进制打包工具。打包和发布需要跨平台编译、打包、摘要、上传至存储、设置分发工件。GoReleaser支持构建Go项目,但无法构建Go以外的内容。破解GoReleaser构建过程的方法是用一个虚拟的Go程序满足GoReleaser,通过后阶段执行Rust构建。另外,Godownloader可以生成一个curl-shell组合来安装二进制文件。探索其他Rust发布工具的项目包括cargo-release、cargo-deliver和cargo-hublish。对于Rust跨平台构建,可以尝试docker-rustup。
Tec
182
0
0
2024-10-10

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

在 Windows 平台下构建 Rust 时,缺少 OpenSSL 可能导致错误。在 Linux 下可以用包管理工具解决,而在 Windows 需手动操作。解决方法为使用 choco 安装 OpenSSL,并设置环境变量后重启 VSCode 即可。引用链接:<li>https://juejin.cn/post/6994715287178182693</li>,<li>https://docs.rs/openssl/0.10.36/openssl/#manual</li>。
Tec
1041
0
0
2024-09-16
解决 Rust 测试中的并行执行冲突:保护共享资源的策略

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

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

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

在 Rust 中进行跨平台开发时,使用条件编译实现平台特定代码可以有效选择不同的实现。然而,这可能导致静态分析工具错误标记代码为"未使用"。解决方法包括使用 #[allow(dead_code)] 属性、在测试中使用平台特定代码、条件编译标记方法的可见性和使用特性标志。另外,通过使用条件编译属性抑制特定平台的未使用代码警告,可以精确控制代码行为,在保持跨平台一致性和代码清晰度的同时解决问题。这些方法维护了代码的兼容性和可读性,是处理平台特定代码和未使用代码警告的优雅解决方案。
Tec
139
0
0
2024-09-13
JS基础|let与var有什么区别?

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

在 JavaScript 中,var 和 let 声明变量的作用域和提升方式不同。var 是函数作用域或全局作用域,而 let 是块作用域。使用 var 声明的变量会被提升到函数或全局作用域顶部,而 let 声明的变量会被提升到块作用域顶部,并且访问未初始化的 let 变量会导致 ReferenceError。此外,var 允许重复声明同一变量,而 let 不允许。在全局对象属性方面,var 声明的全局变量会成为全局对象的属性,而 let 不会。综上所述,let 提供更严格的作用域控制和更安全的变量声明方式,更适合现代 JavaScript 开发。
Tec
145
0
0
2024-07-12
使用 http-server 调试油猴脚本

使用 http-server 调试油猴脚本

学习前端知识时需用到油猴插件,提升对网页的定制能力。文章介绍了通过HTTP服务器高效开发和调试油猴脚本。使用Node.js和http-server模块,安装http-server,启动服务器,更新油猴脚本使用HTTP URL。避免文件访问权限问题,方便在任意操作系统上进行开发。检查浏览器控制台以确保无错误信息。愿意能帮助提升油猴脚本开发效率。
Tec
150
0
0
2024-07-12
Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

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

文章介绍了在Python中如何通过泛型获取类的类型参数,并使用了示例代码和相关库来说明方法。通过`typing`库中的`get_args`和`get_origin`函数,可以获取泛型参数和原始类。在实例方法中需要使用`self.__orig_class__`来获取原始类,以及如何在类中使用泛型参数。最后,分析了`Generic`类的源码以及内部实现细节,介绍了在实例化对象时的相关处理方法。文章涵盖了Python泛型的用法和技巧。
1238
0
1
2023-02-23
1143. 最长公共子序列
1508. 子数组和排序后的区间和