首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
云计算
数据智能老司机
创建于2023-07-21
订阅专栏
云计算相关
等 35 人订阅
共284篇文章
创建于2023-07-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Rust原子和锁——内存排序
在第 2 章中,我们简要提到了内存排序的概念。在本章中,我们将深入探讨这一主题,探索所有可用的内存排序选项,以及最重要的——何时使用哪一种。 重排序与优化 处理器和编译器会使用各种技巧来加快程序的运行
Rust原子和锁——原子
“原子”这个词源于希腊语“ἄτομος”,意为“不可分割的”,即不能被分割成更小的部分。在计算机科学中,这个词用于描述一种不可分割的操作:要么完全完成,要么尚未发生。 正如在“借用和数据竞争”中提到的
Rust原子和锁——Rust 并发基础
在多核处理器普及之前很久,操作系统就已经允许单台计算机同时运行多个程序。这通过快速在多个进程之间切换来实现,每个进程都能逐步地、一点一点地向前推进。如今,几乎所有的计算机,甚至手机和手表,都配备了多核
Rust中的异步编程——创建自己的运行时
在过去的几章中,我们涵盖了许多与 Rust 异步编程相关的方面,但我们是通过实现与目前 Rust 中存在的抽象不同且更简单的抽象来完成这些工作的。本书的最后一章将专注于缩小这一差距,通过改变我们的运行
Rust中的异步编程——协程、自引用结构体和 Pinning
在本章中,我们将通过增加在状态变化时存储变量的能力来改进我们的协程。我们将看到,这将导致我们的协程需要引用它们自身,并由此引发的一些问题。之所以专门为这个主题编写整整一章,是因为它是让 Rust 中的
Rust中的异步编程——运行时、Waker 和 Reactor-Executor 模式
在上一章中,我们通过将可暂停任务(协程)实现为状态机,创建了属于我们自己的协程系统。我们为这些任务提供了一个通用的 API,要求它们实现 Future 特征。同时,我们展示了如何使用一些关键字来生成这
Rust中的异步编程——Coroutines 和 async/await
现在你已经对Rust的异步模型有了一个简要的了解,是时候来看看它如何融入到本书迄今为止涉及的内容中。 Rust的futures是基于无栈协程(stackless coroutines)的异步模型的一个
Rust中的异步编程——Rust 中的 Futures
第5章中,我们介绍了一种在编程语言中实现并发的流行方式:纤程(fibers)或绿色线程(green threads),它们是有栈协程(stackful coroutines)的示例。另一种流行的异步编
Rust中的异步编程——创建我们自己的Fiber
在本章中,我们将深入探讨一种非常流行的并发处理方式。没有什么比亲自实现更能让人深入理解这个主题的了。幸运的是,尽管主题有些复杂,但最终我们只需要大约 200 行代码,就可以得到一个完全可行的示例。 使
Rust中的异步编程——创建你自己的事件队列
在本章中,我们将使用 epoll 创建一个简单版本的事件队列。我们将借鉴 mio(https://github.com/tokio-rs/mio),这是一个用 Rust 编写的低级 I/O 库,它是
Rust中的异步编程——理解操作系统支持的事件队列、系统调用和跨平台抽象
在本章中,我们将探讨操作系统支持的事件队列的工作原理,以及三种不同操作系统如何以不同方式处理此任务。之所以进行这个讲解,是因为我所知的大多数异步运行时都将这种操作系统支持的事件队列作为实现高性能I/O
Rust 中的异步编程——编程语言如何建模异步程序流
在上一章中,我们从总体上讨论了异步程序流、并发和并行。在本章中,我们将缩小范围,具体探讨编程语言和库中不同的并发建模方法。 请记住,线程、futures、fibers、goroutines、promi
Rust 中的异步编程——并发与异步编程:详细概述
异步编程是许多程序员感到困惑的主题之一。你可能觉得自己已经掌握了它,但之后又会发现其中的复杂性远超想象。如果你参与讨论、听够了相关演讲,并在网络上阅读相关内容,你很可能会遇到一些看似互相矛盾的说法。至
Kubernetes从入门到精通系列——外部 DNS 和全局负载均衡
在本章中,我们将在第 4 章所学的基础上进一步探讨。我们将讨论某些负载均衡器功能的局限性,以及如何配置集群来解决这些局限性。 我们知道 Kubernetes 内置了一个 DNS 服务器,可以动态地为资
Kubernetes从入门到精通系列——服务、负载均衡和网络策略
在上一章中,我们启动了 Kubernetes 训练营,为你提供了一个快速但深入的 Kubernetes 基础知识和对象的介绍。我们首先分解了 Kubernetes 集群的主要部分,重点介绍了控制平面和
Linux内核编程——编写你的第一个内核模块(一)
在前两章中,你已经学习了如何获取内核源码树、配置并构建内核(针对 x86 平台)。现在,欢迎进入 Linux 内核开发的一个基础领域——可加载内核模块(LKM)框架的学习之旅,了解如何使用它,无论是作
Linux内核编程——从源码构建6.x版Linux内核(二)
本章承接上一章的内容。在上一章的“从源码构建内核的步骤”部分,我们已经介绍了构建内核的前三个步骤。在那里,你学习了如何下载并解压内核源码树,或者使用 git clone 获取源码(步骤 1 和 2)。
Kubernetes从入门到精通系列——Kubernetes训练营
上一章介绍了如何使用KinD(Kubernetes in Docker)部署Kubernetes集群,这种方法通过在单个机器上使用容器而非虚拟机来创建开发集群,减少了系统资源需求并简化了整个设置过程。
Kubernetes从入门到精通系列——外部 DNS 和全局负载均衡
在本章中,我们将基于第 4 章所学的内容,讨论某些负载均衡功能的局限性以及如何配置集群以解决这些局限性。 我们知道 Kubernetes 内置了一个 DNS 服务器,可以为资源动态分配名称。这些名称用
Kubernetes从入门到精通系列——使用 KinD 部署 Kubernetes
像许多IT专业人士一样,在笔记本电脑上拥有一个Kubernetes集群对于展示和测试产品非常有益。在某些情况下,你可能需要运行具有多个节点或集群的Kubernetes集群,以进行复杂的演示或测试,例如
下一页