Rustアンチスレ (202レス)
上下前次1-新
85(1): 2021/09/12(日)22:17 ID:Zjk1d74X(1) AAS
>>75
同期実行ライブラリと整合性が無いというのはウソです
Rustでstd利用の同期とasync-std利用の非同期のプログラムはほとんど同じように書けます
例えば複数のファイルのチェックサム計算を同期と非同期の2通りに書いた以下の記事を参考にすると
外部リンク:qiita.com
メイン部分の両者のdiffを取ると以下のような感じです
for entry in entries {
let entry = entry.unwrap();
if entry.file_type().unwrap().is_file() {
+ let handle = async_std::task::spawn(async move {
let filepath = entry.path();
- let mut file = fs::File::open(&filepath).unwrap();
+ let mut file = fs::File::open(&filepath).await.unwrap();
let bytes = {
let mut bytes = Vec::new();
- file.read_to_end(&mut bytes).unwrap();
+ file.read_to_end(&mut bytes).await.unwrap();
bytes
};
let checksum = bytes.iter().fold(0u8, |acc, b| acc.wrapping_add(*b));
println!("{:?}: {}", filepath.file_name().unwrap(), checksum);
+ });
+ handles.push(handle);
}
}
つまり差は2点のみ
非同期実行では不可欠なspawnがが入ることと
非同期を同期風に書けるようにするためのawaitが入ることだけです
おっしゃる『同期実行のライブラリと整合性が無さすぎる』との主張は間違っています
上下前次1-新書関写板覧索設栞歴
あと 117 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.005s