工具函数 首先,我们需要一些工具函数,future::ready 和 block_on。这些工具函数虽然在生产代码中并不常见,但却能使我们方便的创建和运行 futures。 ...
工具函数 首先,我们需要一些工具函数,future::ready 和 block_on。这些工具函数虽然在生产代码中并不常见,但却能使我们方便的创建和运行 futures。 ...
对象化 如果熟悉 Javascript 中的 promises ,并且跟着我们之前的博客完成了学习,你也许会对此感到困惑:在之前的博客中,那些熟悉的组合器(then,catc...
大脑需要断舍离 如何过滤掉无效信息 吸收对自己的长期目标有帮助的信息 选择值的依赖的信息源 不盲目追求热点 重事实,轻观点和评论 留出思考的时间 学会简洁的表达(培养简洁的表...
回顾 Futures 是利用 rust 的零成本抽象概念来编写可读快速的异步代码的一种强大方法。 Futures 的行为很像 Javascript 及其它语言中的 promi...
存储器的层次结构 存储技术随机访问存储器 RAMSRAM CPU 的高速缓存DRAM 主存地址访问模型单位存储器采用,阵列式寻址,需要的线路少,但需要两次寻址多个单位存储器组...
完整的请求与响应复用 有效压缩 HTTP 标头字段 增加请求优先级的支持 增加服务端推送的支持 新的流控制、错误处理和升级机制 HTTP/2 的三个概念: 数据流 消息 帧 ...
最后的一步 现在我们的 future 确实是可以工作了,但这并没有给你展示出 future 的威力。所以我们来写一个超级好用的 future 和上面的 future 串联起来...
我们的实现 让我们一行一行来看: #[derive(Default)] 自动为类型创建 ::default() 函数,数字被初始化为 0。 struct MyFuture {...
我们的 Trait Traits[https://doc.rust-lang.org/book/ch10-02-traits.html] 是 rust 中定义共享行为的一种方...
构建我们自己的 future 从上层来看,我们需要实现以下几个部分来让 future 工作:一个 runner,future trait 以及 poll type。 首先是 ...
数字的二进制表示 整数的二进表示unsigned int 编码UMIN 和 UMAX,即使用 unsigned int 编码所能表示的最大范围整数,使用 w 位表示 unsi...
前言 对于数据库来说,使用场景是很重要的。什么样的场景适合什么样的数据库,这些只能通过实践才能加深理解。同时也能更加深入的了解对应的数据库的原理。接下来讨论一下在关注列表这个...
究竟什么是 future 特别的,future 是一系列的异步操作所表示的一个值。future crate 的文档中将其定义为『一个尚未准备好的值的代理对象』。Rust 中的...
这篇文章是 Understanding futures in Rust[https://www.viget.com/articles/understanding-future...
Read-Write Transaction 事务开始时的时间戳 starTS,选取 now.latest 作为开始时间戳。 各 participant 选取 prepare...
唐人街探案三观影指北 不要买票 不要买票 不要买票 这是看完唐三的观影者对想看还没看选好座位没付款的朋友们的郑重警告。 警告没用的话,下面是吐槽时间。 故事主线,推理。你特么...
主要的内存管理方法 主要针对堆内存的管理。 手动管理(c/c++),容易触发内存安全问题,以及内存泄露。 自动管理(GC,java/golang),运行时对性能有影响,并不能...
巨人快要完结了,趁完结之前开个脑洞。名字就叫《致两千年前的程序员》。这个程序员是谁呢,就是艾族人的始祖尤弥尔(以下简称 yme)。yme 掉入巨木的树洞,遇到了怪诞虫。yme...
用户空间切换 linux 的系统调用提供了在用户空间进行上下文切换的能力。go 语言中用户空间的上下文切换用的是汇编实现,怀疑可能是为了跨平台及提高效率而为之。后面用 lin...
学习 Linux 中断的相关知识,整理了一些常见的问题: 什么是硬中断,什么是软中断,它们的区别是什么? 硬中断由硬件触发,会打断 CPU 然后跳转到内存的相应的中断处理程...