原创 008 Rust 異步編程,select 宏介紹

select宏 select宏也允許併發的執行Future,但是和join、try_join不同的是,select宏只要有一個Future返回,就會返回。 示例 源碼 use futures::{select, future:

原创 007 Rust 異步編程,通過 join 執行 Future

前言 在之前我們主要介紹了通過await和block_on執行Future,但是這兩種方式實際上都是順序執行的方式。 .await是在代碼塊中按順序執行,會阻塞後面的代碼,但是此時會讓出線程;block_on會阻塞直到Future

原创 006 Rust 異步編程,Stream 介紹

Stream 介紹 Stream和Future類似,但是Future對應的是一個item的狀態的變化,而Stream則是類似於iterator,在結束之前能夠得到多個值。或者我們可以簡單的理解爲,Stream是由一系列的Futur

原创 Rust 編程中使用 leveldb 的簡單例子

前言 最近準備用Rust寫一個完善的blockchain的教學demo,在持久化時考慮到使用leveldb。通過查閱文檔,發現Rust中已經提供了使用leveldb的接口。將官方的例子修改了下,能夠運行通過。 示例 源碼 //

原创 005 Rust異步編程,Pin介紹

爲了對Future調用poll,需要使用到Pin的特殊類型。本節就介紹一下Pin類型。 異步背後的一些原理 例子1 源碼 //文件src/main.rs use futures::executor; async fn asy

原创 ubuntu下adb devices顯示unauthorized解決方法

找了好幾篇文章,發現這篇文章的解決方式是靠譜的,解決方式如下: rm ~/.android/adbkey apt update apt install adb

原创 Rust編程知識拾遺:Rust 編程,實現簡單的隊列

視頻地址 頭條地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 網易雲課堂地址:ht

原创 Rust編程知識拾遺:Rust 通過屬性設置 crate 名稱、版本和類型

可以通過crate_type屬性告知編譯器crate是一個二進制的可執行文件還是一個庫,crate_name可以設定crate的名稱。 例子: //編寫lib.rs #![crate_type = "lib"] #![crate_

原创 Rust編程知識拾遺:Rust 通過屬性禁用 lint 警告

編譯器提供dead_code lint,這會對未使用的函數產生警告,可以用一個屬性來禁止。 例子: fn func1() { println!("func1"); } #[allow(dead_code)] fn func2(

原创 Rust編程知識拾遺:Rust 編程,讀取文件

視頻地址 頭條地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 網易雲課堂地址:ht

原创 003Rust異步編程,Future trait介紹

Future介紹 Future是Rust異步編程的核心,Rust異步編程基本都是圍繞Future來展開。那麼,什麼是Future呢? 首先,我們來看下簡化版的Future,如下: trait SimpleFuture { typ

原创 004 Rust 異步編程,async await 的詳細用法

我們之前簡單介紹了async/.await的用法,本節將更詳細的介紹async/.await。 async的用法 async主要有兩種用法:async函數和asyn代碼塊(老版本書中說的是三種主要的用法,多了一個async閉包)。

原创 Rust 編程視頻教程地址、源碼 GitHub 地址說明

視頻地址 基礎部分地址 頭條地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 網易雲

原创 Rust編程知識拾遺:Rust 編程,Option 學習

視頻地址 頭條地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 網易雲課堂地址:ht

原创 用Rust實現一個多線程的web server

在本文之前,我們用Rust實現一個單線程的web server的例子,但是單線程的web server不夠高效,所以本篇文章就來實現一個多線程的例子。 單線程web server存在的問題 請求只能串行處理,也就是說當第一個連結處理完之前