[Rust] async-std crate
async-std๋ ๋ง ๊ทธ๋๋ก, rust์ std ๊ธฐ๋ฅ๋ค์ asyncํ๊ฒ ๊พธ๋ฉฐ์ ์ ๊ณตํ๋ ํฌ๋ ์ดํธ๋ค.
async/await๋ฅผ ํ์ฉํ ๋ํ์ ์ธ ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๋ผ ํ ์ ์๋ค.
๋์ถฉ ์ด๋ฐ์์ผ๋ก ์ค์ ํ๋ฉด ๋๋ค.

๊ทธ๋ผ ์ฐ์ attribute ๊ธฐ๋ฅ์ผ๋ก main์ async๋ก ๋ง๋ค์ด๋ฒ๋ฆด ์ ์๋ค.
์ด๋์ผ ์ข ์ ๋๋ก ์ฐ์ง ์๊ฒ ๋๊ฐ
๋๋ฆฌ๋ฉด ์ ๋์๊ฐ๋ค.
์ด์ ์ ๋๋ก ๋ ๊ธฐ๋ฅ์ ์จ๋ณด์.
async-std๋ std์ fs, future, io, net, os, path, pin, prelude, process, stream, sync๋ฅผ async๋ก ๊ฐ์ธ์ ์ ๊ณตํ๋ค.
๊ทธ์ค์ ์๋ง ๊ฐ์ฅ ์์ฃผ ์ฐ์ผ๋งํ๊ฒ ํ์ผ ์
์ถ๋ ฅ์ผ ๊ฒ์ด๋ค.
ํ๋ผ๋ฏธํฐ๋ ๋ฐํ๊ฐ์ ๊ฑฐ์ ๋ค ๋์ผํ๋ค. ๊ทธ๋ฅ async๋ผ์ Future๋ฅผ ๋ฐํํ ๋ฟ.


๋จ์ํ ์ ๋ ๊ฒ ๊ฐ์ธ๊ธฐ๋ง ํ ๊ฒ๋ ์๊ณ , ์ถ๊ฐ๋ก std::thread ๋ฑ์ ์ค๋ ๋ฉ ํจ์๋ค์ ์ ๊พธ๋ฉฐ์ ์ ๊ณตํ๋ task ๋ชจ๋๋ ์๋ค.
task::spawn์ thread::spawn๊ณผ ๊ฑฐ์ ๋๋ฑํ ํจ์๋ค.
์ค๋ ๋๋ฅผ ์ถ๊ฐ๋ก ๋๋ฆฌ๋๋ฐ, ๋์ async Future๋ฅผ ๋ฐํํด ํธ๋ค๋ง์ด ๋ ํธํ๋ค.

์ค์ ๋ก ๋ฌด์์ํ๊ฒ ๋์์ฑ์ ๊ฐ์ง๋ ์ถ๋ ฅ์ ๋ณด์ธ๋ค.
์ด์ธ์๋ ๋ธ๋ญ๊ฑธ์ด์ฃผ๋ block_on, sleep ๋ฑ ์ ์ฉํ ํจ์๋ค์ด ๋ช๊ฐ์ง ์ ๊ณต๋๋ค.
์์ธํ ๊ฒ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค.
https://docs.rs/async-std/1.6.3/async_std/task/index.html
๊ทธ๋ ๋ค.