← Rust

LESSON / MIXED

チャネルによるメッセージパッシング

チャネルによるメッセージパッシングを学び、実務での設計判断につなげます。

チャネル

共有データを直接変更する代わりに、チャネルで値を送る設計があります。std::sync::mpscは複数送信者・単一受信者のチャネルを提供します。

use std::{sync::mpsc,thread};
fn main(){
 let(tx,rx)=mpsc::channel();
 let h=thread::spawn(move||tx.send(String::from("done")).unwrap());
 println!("{}",rx.recv().unwrap());
 h.join().unwrap();
}

送信値の所有権は受信側へ移ります。イベントの種類はenumで表すと明確です。

enum Event{Started(u64),Finished(u64),Failed(u64)}

演習:イベント集計

コード提出フォーム

RUST

安全なサーバー側採点連携が未接続のため、現在は提出できません。

採点基盤準備中

公開テストケース

読み込み中…