2301_79967122
码龄2年
求更新 关注
提问 私信
  • 博客:13,238
    13,238
    总访问量
  • 18
    原创
  • 153
    粉丝
  • 6
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
加入CSDN时间: 2023-09-25
博客简介:

2301_79967122的博客

查看详细资料
个人成就
  • 获得218次点赞
  • 内容获得5次评论
  • 获得237次收藏
  • 博客总排名132,928名
  • 原力等级
    原力等级
    2
    原力分
    196
    本月获得
    1
创作历程
  • 15篇
    2024年
  • 4篇
    2023年
成就勋章

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

创作活动更多

『技术文档』写作方法征文挑战赛

在技术的浩瀚海洋中,一份优秀的技术文档宛如精准的航海图。它是知识传承的载体,是团队协作的桥梁,更是产品成功的幕后英雄。然而,打造这样一份出色的技术文档并非易事。你是否在为如何清晰阐释复杂技术而苦恼?是否纠结于文档结构与内容的完美融合?无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

51人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

容器启动失败,提示no space left on device

在执行mount命令的进程mnt命名空间中的挂载点目录中,查找本次挂载的挂载点目录,如果该挂载点目录已经被挂载过,则设置本次挂载的父挂载点为上一次该挂载点目录的挂载点。如果本次挂载的挂载点在mnt命名空间中的挂载点目录中不存在,则查找本次挂载点目录的父目录,如果父目录在mnt命名空间中存在,则本身挂载的父挂载点就是该挂载点的父目录挂载是的挂载点。2、查找该mnt命名空间,dest_dir挂载点目录是否有/data/,找到了为/data的挂载点,挂载点的组属为shared:30。
原创
发布博客 2024.11.21 ·
1029 阅读 ·
11 点赞 ·
0 评论 ·
10 收藏

异步并发编程

密集任务需要并行运行时,例如并行计算,选多线程模型。后者通过语言特性 + 标准库 + 三方库的方式实现,在你需要高并发、异步。Rust 同时提供多线程编程和 async 编程,前者通过标准库实现,有大量。Async 在 Rust 中使用开销是零。
原创
发布博客 2024.10.16 ·
202 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

Macro宏编程

如果我们要使用一个叫HelloMacro的特征,一种方法是首先,创建一个名叫hello_macro的工程,然后在src/lib.rs中定义过程宏所需的HelloMacro特征和其关联函数,接着是定义过程宏,宏所在的包名要求必须以derive为后缀,并且要放在单独的包中,因此再在项目根目录下lib包根。最后是完成主体代码//hello_macro 项目的目录结构├── src├── src└── lib.rs# 也可以使用下面的相对路径。
原创
发布博客 2024.10.15 ·
1031 阅读 ·
11 点赞 ·
0 评论 ·
15 收藏

rust学习之unsafe语块

unsafe为我们提供了解引用裸指针、调用一个unsafe或外部的函数、访问或修改一个可变的静态变量、实现一个unsafe特征、访问union中的字段这5个方面的能力,此时编译器不会进行内存安全方面的检查,使我们能轻松绕过相关的编译检查。但unsafe并不能绕过 Rust 的借用检查,也不能关闭任何 Rust 的安全检查规则。
原创
发布博客 2024.10.10 ·
471 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

rust学习之错误处理

为了更好的定义错误,Rust 在标准库中提供了一些可复用的特征,如特征自定义错误类型只需要实现Debug和Display特征就可以作为Err来使用,source方法是可选的,而Debug特征往往也无需手动实现,可以直接通过derive来派生。然而实现Debug和Display特征并不是作为Err// AppError 是自定义错误类型,它可以是当前包中定义的任何类型,在这里为了简化,我们使用了单元结构体作为例子。// 为 AppError 自动派生 Debug 特征。
原创
发布博客 2024.09.28 ·
526 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

rust学习之全局变量

编译期初始化的全局变量,const创建常量,static创建静态变量,Atomic创建原子类型运行期初始化的全局变量,用于懒初始化,Box::leak利用内存泄漏将一个变量的生命周期变为'static。
原创
发布博客 2024.09.28 ·
653 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

多线程并发编程

rust使用1:1线程模型:程序内的线程数和该程序占用的操作系统线程数相等golang使用的是M:N线程模型:在内部实现了自己的线程模型(绿色线程、协程),程序内部的 M 个线程最后会以某种映射方式使用 N 个操作系统线程去运行而绿色线程/协程的实现会显著增大运行时的大小,因此 Rust 只在标准库中提供了1:1的线程模型,用户根据需要也可以选择 Rust 中的M:N模型,这些模型由三方库提供了实现,如tokio。
原创
发布博客 2024.06.12 ·
416 阅读 ·
9 点赞 ·
1 评论 ·
5 收藏

rust学习之Weak与循环应用

或者类似的类型嵌套组合(具备内部可变性和引用计数)时,特别注意由于循环引用导致的堆栈溢出(main线程8M),造出内存泄漏。的所有内容,最终main线程操作8M,发生栈溢出。对于这类问题,我们可以使用Weak来解决。指向的内存也不会被释放,最终发生了内存泄漏。····,有上述代码我们可以看出:在创建了。这里我们创建了一个复杂的枚举类型。所指向内存不会被释放,同理可得。的调用,Rust 试图打印出。由此此我们成功创建了循环引用。它的每个值都指向了另一个。,此时引用计数会变为。
原创
发布博客 2024.05.31 ·
385 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

Rust学习之智能指针

在 Rust 中,最常见的指针类型是引用,引用本身指向某个值,不会造成性能上的额外损耗。而智能指针比引用有更复杂的数据结构,包含比引用更多的信息,例如元数据,当前长度,最大可用长度等。引用和智能指针的另一个不同在于前者仅仅是借用了数据,而后者往往可以拥有它们指向的数据。智能指针往往是基于结构体实现,它与我们自定义的结构体最大的区别在于它实现了Deref和DropDeref*TDrop动态字符串String和动态数组可以将值分配到堆上)、Rc(引用计数类型,允许多所有权存在)、Ref和。
原创
发布博客 2024.05.28 ·
727 阅读 ·
17 点赞 ·
0 评论 ·
30 收藏

深入rust类型

只能应用在数值类型上 ,在其他类型转换时需要强制转换,在某些情况下,类型是可以进行隐式强制转换的。但在匹配特征时,不会做任何强制转换(除了方法)。Rust 是强类型语言,同时也是强安全语言,它内置了一些基本类型之间的转换,如。把范围较小的类型转换成较大的类型,来避免数据超范围。特征通过​std::prelu模块提前引入到了当前作用域中,,此时就可以对其进行相应的错误处理,例如,如果要处理转换错误,那么可以使用。会尝试进行一次转换,并返回一个。
原创
发布博客 2024.05.15 ·
236 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

rust学习之迭代器

等,我们只需关注集合中的元素如何处理,而不关心如何去访问等问题。语法糖,自动把实现了该特征的数组类型转换为迭代器,最终可以直接对一个数组进行迭代。循环颇为相似,都是去遍历一个集合。在rust中,数组不是迭代器,但数组实现了。,每次消耗它一个元素,最终迭代器中将没有任何元素,只能返回。迭代器允许我们迭代一个连续的集合,例如数组、动态数组。方法,该方法控制如何从集合中取值,最终返回值的类型是。转换成迭代器后,通过调用其上的。特征,最主要的就是实现其中的。
原创
发布博客 2024.05.10 ·
280 阅读 ·
7 点赞 ·
0 评论 ·
2 收藏

rust学习之闭包closure

如果只有一个返回表达式的话,定义可以简化为:|param1| 返回表达式。虽然闭包的类型推导很好用,但是它不是泛型,这个整型去调用闭包,跟编译器之前推导的。闭包与函数最大的不同就是它的参数是通过。的形式进行声明,如果是多个参数就。上面的代码展示了非常简单的闭包。)进行相加,最终返回它们的和为。,同时捕获了作用域中的。
原创
发布博客 2024.04.26 ·
315 阅读 ·
7 点赞 ·
1 评论 ·
5 收藏

containerd运行时与docker、kubelet的关系

为了解耦,containerd 将系统划分成了不同的组件,每个组件都由一个或多个模块协作完成(Core 部分),每一种类型的模块都以插件的形式集成到 Containerd 中,而且插件之间是相互依赖的,例如,上图中的每一个长虚线的方框都表示一种类型的插件,包括 Service Plugin、Metadata Plugin、GC Plugin、Runtime Plugin 等,其中 Service Plugin 又会依赖 Metadata Plugin、GC Plugin 和 Runtime Plugin。
转载
发布博客 2024.04.23 ·
240 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Rust学习杂记

str是一个不可变的固定长度的字符串,如果是从String解引用而来的,则指向堆上,如果是字面值,则指向静态内存。s的类型是&str,而“abcd”是str类型,这里的“abcd”就是字符串字面值,存放在Stack上的。s 是切片,切片是一个结构体,包含两个字段,一个是指向数据的指针,另一个是数据的长度。String 类型的字符串是分配在堆上内存的可变字节缓冲区,由内存地址、容量、当前值的长度,这三部分构成。// s[0..1] 的类型为 str是string 的切片类型,不能直接切片,
原创
发布博客 2024.03.16 ·
433 阅读 ·
10 点赞 ·
1 评论 ·
9 收藏

rust学习之注释及格式化输出

我们还可以为参数指定名称,让对应名称的值填充占位符,但。注释不仅仅是文档,还可以作为单元测试的用例运行,使用。代码注释方式有行注释//,块注释/* */两种。特征的 Rust 类型并没有那么多,往往需要我们自定义想要的格式化方式,对于没有实现。之外(依次填充占位符),还能让指定位置的参数去替换某个占位符,例如。文档行注释:/// ,文档块注释:/** */在 Rust 中,无法直接为外部类型实现外部特征,但可以使用。
原创
发布博客 2024.01.03 ·
1911 阅读 ·
32 点赞 ·
1 评论 ·
47 收藏

rust学习之包和模块

对于 Rust 而言,包是一个独立的可编译单元,它编译后会生成一个可执行文件或者一个库。模块可见性不代表模块内部项的可见性,模块的可见性仅仅是允许其它模块去引用它,但是想要引用它内部的项,还得继续将对应的项标记为。使用模块,我们就能将功能相关的代码组织到一起,然后通过一个模块名称来说明这些代码为何被组织在一起。目录下,每一个文件都是独立的二进制包,同时也会包含一个库包,该包只能存在一个。Rust 出于安全的考虑,默认情况下,所有的类型都是私有化的,文件,包根文件中的三个模块分别形成了模块树的剩余部分。
原创
发布博客 2023.12.21 ·
2130 阅读 ·
46 点赞 ·
1 评论 ·
47 收藏

rust学习之错误处理

panic可分为被动触发和主动调用,被动触发指的时由于代码本身原因发生致命错误,如数组访问越界。时,程序提供了栈展开与直接终止两种方式来处理终止流程,默认的方式就是。序会打印出一个错误信息,展开报错点往前的函数调用堆栈,最后退出程序。Rust 中的错误主要分为可恢复错误与不可恢复错误。, 但是会带上自定义的错误提示信息,相比之下,代表成功时存入的正确值的类型,存放方式是。代表错误时存入的错误值,存放方式是。它们的作用就是,如果返回成功,就将。中的值取出来,如果失败,就直接。,如果失败,且是文件不存在错误。
原创
发布博客 2023.12.20 ·
501 阅读 ·
7 点赞 ·
1 评论 ·
9 收藏

rust学习之生命周期

生命周期的主要作用是避免悬垂引用,它会导致程序引用了本不该引用的数据。当存在多个引用时,编译器有时会无法自动推导生命周期,此时就需要我们手动去标注,通过为参数标注合适的生命周期来帮助编译器进行借用检查的分析。生命周期标注并不会改变任何引用的实际作用域,自身并不具有什么意义,其作用只是告诉编译器多个引用之间的关系。即表示返回值的生命周期与参数生命周期中的较小值一致。开头,名称往往是一个单独的小写字母,大多数人都用。活得一样久,同时函数的返回引用也至少跟。,小于它应该具备的生命周期。的作用域的重合部分。
原创
发布博客 2023.12.08 ·
1660 阅读 ·
41 点赞 ·
0 评论 ·
34 收藏

rust学习之基本结构

可以通过cargo run命令编译并运行代码,也可以先执行cargo build —>在执行./target/debug/world_hello,编译后的二进制文件存放在项目路径的./target/debug/目录下,由于编译默认是。它存储了项目的所有元配置信息,如果 Rust 开发者希望 Rust 项目能够按照期望的方式进行构建、测试和运行,那么,必须按照合理的方式构建。模式下,Rust 编译器不会做任何的优化,只为了尽快的编译完成,开发流程更加顺畅。,前者是一个可运行的项目,后者是一个依赖库项目。
原创
发布博客 2023.10.08 ·
52 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多