Windows11下安装WSL
Windows11下安装WSL一、WSL是什么?开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。
二、安装步骤
确保电脑虚拟化开启
控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)以及Hyper-V。由于在Windows11中并没有Hyper-V,需要进行手动配置
配置Hyper-V
家庭版windows11没有Hyper-V,需要配置Hyper-V。打开vs code创建Hyper-7.cmd,复制以下内容并保存后执行。
12345pushd "%~dp0"dir /b %SystemRoot%\s ...
Linux系统中卸载anaconda
Linux系统中卸载anaconda要在Linux系统中卸载Anaconda,你需要执行一系列的命令。这里是一个通用的步骤指南:
找到Anaconda安装脚本:在安装Anaconda时,它会在你的主目录中创建一个名为anaconda3的文件夹(默认情况下,如果你在安装时选择了不同的名称或位置,请确保使用正确的路径)。
运行Anaconda卸载程序:Anaconda提供了一个卸载程序anaconda-clean,可以帮助你删除Anaconda的配置文件。在终端中运行以下命令:
12conda install anaconda-cleananaconda-clean --yes
这个命令将删除Anaconda的配置文件,并且可以选择创建一个备份。使用–yes选项可以避免在删除每个项目时都要求确认。
删除Anaconda安装目录:接下来,你需要手动删除Anaconda的安装目录。如果你的安装目录是默认的~/anaconda3,你可以使用以下命令:
1rm -rf ~/anaconda3
如果你的安装目录不是默认的,请确保使用正确的路径。
编辑.bashrc或其他启动脚本 ...
状压DP算法
状压DP使用状压DP的原因我们知道状态压缩,顾名思义,就是需要考虑的状态非常多,我们如果用平常的思想去表示状态,那是非常不现实的,在时间和空间上都不允许,我们使用某种方法,以最小的代价表示某种状态。 那么,这通常是用进制来表示状态的,而选择几进制则根据要求使用的对象的点的状态有几种。一般来说,只有0和1,我们则是用二进制来表示,当然也有其他进制的题,在例题中会列举,需要我们灵活变通,主要谈二进制。
那么如何用二进制表示状态呢?我们发现,二进制上是按位分的,那么我们每一位可以看成一个点,而点上的取值则为该点的状态或者选择。例如00001001这个状态则表示第一个点和第四个点状态为1,其余的点状态为0。所以按照这种思想,能抽象的表示出一个很复杂的状态,实现了时间和空间的优化。
状压DP的适用条件状态压缩其实是有适用环境的:
状态需要有一定的状态单元。 即一个状态应该是保存一个集合,其中的元素值对应着0或1,例如我们常见的棋盘,我们可以用0或1来表示棋子的放置状态。而整个集合即是一个01串,即二进制数,我们通常用十进制表示。那么我们再进行状态转移或者判断的时候,需要先将十进制转化为二进制, ...
Rust中的错误处理
Rust中的错误处理如果你使用过其他编程语言,那么就会知道Rust中的错误处理是完全不同的方法。像Java,JS,Python等你常常会使用throw处理异常,以及return成功的值。但在Rust中,你会返回给调用者一个Result
Result<T, E>是一个拥有两个值的枚举类型,其中Ok(T)用来返回成功值,Err(E)用来返回错误值
1234enum Result<T, E> { Ok(T), Err(E),}
返回错误而不是抛出错误,这是一种编程习惯的转变。所以如果你是Rust的初学者,可能刚开始学习起来觉得很麻烦,因为这需要你用去思考在不同的场景,应该使用什么样的方法去处理错误。
在这篇博客中会有错误处理的一些范式,以及它们在Rust中是如何体现的:
忽略错误
直接结束程序
使用默认值处理
传递错误
传递多个错误
模式匹配Boxed错误
使用库 or 应用
创建自定义错误
传递自定义错误
模式匹配自定义错误
忽略错误(unwrap())(如果出现错误会触发panic,让该线程退出)
最简单的处理方法就是直接忽略 ...
Rust构建自己的第一个项目
Rust构建自己的第一个项目几个核心命令:
cargo new xxx:用于新建项目
cargo build:用于在Cargo.toml中添加dependencies进行依赖的下载和编译
cargo run:用于运行
新建项目在目录下输入下列指令,例如要构建一个叫做hello-rust的项目
1cargo new hello-rust
Cargo 已经帮我们创建好默认项目了,还创建了个git的本地仓库,还有一些配置文件, src/main.rs 为编写应用代码的地方。
运行项目使用cargo run命令运行
1cargo run
可以看到会经历一个编译的过程后,打印出Hello,world!信息
编写Hello-RustCargo.toml文件是一个管理项目配置的文件,包括项目依赖等相关配置
添加配置在dependencies中:
在命令行中运行:
1cargo build
可以看到除了我们自定义添加的ferris-say版本的依赖,还会自动添加好依赖的依赖
接下来就在 src/main.rs 中写入以下内容:
123456789101112use ferris_says ...
Java八股
Java八股2024年 Java 面试八股文(20w字)_java八股文2023-CSDN博客
Spring面试被问了几百遍的 IOC 和 AOP ,一篇文章带你搞清楚!!!_ioc和aop的原理面试-CSDN博客
Sentinelsentinel (史上最全)-CSDN博客
Gradle&Mavengradle中的build script详解_gradle buildscript-CSDN博客
[Gradle和Maven的区别-CSDN博客](https://blog.csdn.net/weixin_45626288/article/details/131973787?ops_request_misc=%7B%22request%5Fid%22%3A%22172024305816800185819613%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=172024305816800185819613&biz_id=0&utm_medium=distribute.pc_search_re ...
后端微服务-programmer-club项目的设计与实现
程序员社区项目
开发模式前后端分离,后端负责所有的设计、接口的定义,后端先行,前端协同,通过接口文档,采用apifox的文档进行对接。
敏捷开发,版本上线迭代,需求分析->功能设计->详细设计->编码实现。
开发工具后端:IDEA
前端:VSCode
项目管理:giteazycode
包依赖管理:Maven3.6.0
数据库:Mysql5.7
数据库连接池和监控库:Druid
框架:Springboot 2.4.2
数据库图形化:Navicat
接口管理工具:APIPost7
Redis桌面工具:RedisDesktop
表建模:PDManager
原型设计:axure8
原型组件库: antdesign
代码生成器:easycode(idea的plugin市场)
一些插件:mybatis(类->dao->数据库),easycode(由数据库表生成相应代码), preconditions(参数校验)
node.js
架构设计传统项目[SpringMVC框架(详解)-CSDN博客](https://blog.csdn.net/H20031011/articl ...
Rust异步编程
Rust异步编程123456789101112let mut handles = Vec::new();for index in 1..=100 { let handle = tokio::spawn( async_http_client.get(format!("www.example.com/items/{}", index)) ); handles.push(handle);}for handle in handles { let result = handle.await;}
比较使用异步编写的示例与同步编写的相同示例 - 对于大量并发 Web 请求,异步版本比同步请求快约 60%
Rust基础学习
Rust基础学习Learn Rust - Rust Programming Language (rust-lang.org)
【一起学Rust】Rust介绍与开发环境搭建_rust开发-CSDN博客
包管理工具:cargo
命令行:
cargo new [name]:创建一个新的Rust项目cargo build:构建项目cargo run:运行项目cargo test:运行测试cargo doc:生成文档cargo update:更新依赖项cargo clean:清除构建输出cargo publish:将软件包发布到crates.io上cargo install [package]: 安装指定软件包cargo uninstall [package]: 卸载指定软件包
Rust 全面指南:从基础到高级,一网打尽 Rust 的编程知识_rust语言-CSDN博客
语法变量声明1234567//定义变量可以使用let关键字,例如:let x = 10; //会被自动推断为i32类型let y: i32 = 20;//上述默认为不可变变量,若要可变变量需要加入mut关键字let mut ...
MIT 6.824 Lecture2-RPC and Threads
Lecture2-RPC and Threads2.1 GO语言❓ why we use go in this class
1️⃣ go提供类许多便捷的工具,如threads、锁以及线程间同步。此外,还有RPC包也十分重要。
2️⃣ go是type safe 以及memory safe的,其垃圾回收机制(garbage collected)十分有效
3️⃣ threads + GC 是十分具有吸引力的
2.2 threads2.2.1 为什么要关注多线程📖 多线程是在本课程中实现并发的一个重要工具,在分布式系统中,并发十分有趣。比较常见的情况是:一个程序需要同时和多台计算机(a bunch of other computers)通信,客户端可能会同时和多台服务器通信,一台服务器可能会同时响应来自不同客户端的多条请求。假如我的程序同时有 7 件不同的事情在进行,我想要一种简单的方式实现它能同时做 7 件不同的事情,多线程就能很好的解决它。
在 Go 的文档中,它把线程称为 goroutine,goroutine 真的很像大家所说的线程。
2.2.2 如何理解多线程假设有一个程序,用一个 ...