Open12

Why choose async/await over threads?

botamotchbotamotch

The main function is preceded with the async keyword. This means that it is not a traditional function, but one that returns a state machine.

ステートマシンを返却する関数 ってどういう意味だ?

botamotchbotamotch

smol::Executor ステートマシンの上位執行者???

botamotchbotamotch

↑ のコードを解説したまとめが

“So why wouldn’t we use threads?”

botamotchbotamotch

Rustで並行処理を扱う場合にスレッド非同期の2つの選択肢がある。

スレッドの方がOSネイティブでプログラムのモデルを変更する必要がなく簡単である。しかし、コンポーザビリティという観点では非同期の方が圧倒的に有利であり、どのような種類のストリームにも適用できるという利点がある。それが十分プログラマに伝わっておらず、スレッドの方が優れていると考えるプログラマもいる。非同期コミュニティはコンポーザビリティという利点より強調すべきであり、パフォーマンスだけでは非同期を選択する理由としては不十分である(そもそもユースケースによってパフォーマンスは変わってくる)。