์ค๋ ๋
๋ฌ์คํธ์ ์ค๋ ๋๋ ๋ค๋ฅธ ์ธ์ด์ ์ค๋ ๋์ ์ ์ฌํ๊ฒ ๋์ํฉ๋๋ค:
use std::thread; use std::time::Duration; fn main() { thread::spawn(|| { for i in 1..10 { println!("Count in thread: {i}!"); thread::sleep(Duration::from_millis(5)); } }); for i in 1..5 { println!("Main thread: {i}"); thread::sleep(Duration::from_millis(5)); } }
- ์ค๋ ๋๋ ๋ชจ๋ ๋ฐ๋ชฌ ์ค๋ ๋์ ๋๋ค. ๋ฐ๋ผ์ ๋ฉ์ธ ์ค๋ ๋๋ ์ด ์ค๋ ๋๋ค์ด ๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค.
 - ํ ์ค๋ ๋์์ ๋ฐ์ํ ํจ๋์ ๋ค๋ฅธ ์ค๋ ๋์๊ฒ ์ํฅ์ ๋ผ์น์ง ์์ต๋๋ค.
- ํจ๋์ ์ถ๊ฐ์ ๋ณด(ํ์ด๋ก๋)๋ฅผ ํฌํจํ  ์ ์์ผ๋ฉฐ, ์ด๋ 
downcast_ref๋ก ํ์ด๋ณผ ์ ์์ต๋๋ค. 
 - ํจ๋์ ์ถ๊ฐ์ ๋ณด(ํ์ด๋ก๋)๋ฅผ ํฌํจํ  ์ ์์ผ๋ฉฐ, ์ด๋ 
 
ํค ํฌ์ธํธ:
- 
๋ฉ์ธ ์ค๋ ๋๊ฐ ์์ ์ค๋ ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ์์ ์ค๋ ๋์ for๋ฌธ์ 10๊น์ง ๊ฐ์ง ์์ต๋๋ค.
 - 
๋ง์ฝ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์์ ์ค๋ ๋๊ฐ ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด
let handle = thread::spawn(...)์ผ๋ก ์ค๋ ๋๋ฅผ ์ ์ธํ ํhandle.join()๋ก ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํฉ๋๋ค. - 
์์ ์ค๋ ๋์์ ๋ฐ์ํ ํจ๋์ด ๋ฉ์ธ ์ค๋ ๋์๋ ์ํฅ์ ์ฃผ์ง ์์์ ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค.
 - 
handle.join()์ฌ์ฉ์Result๋ฐํ๊ฐ์ ํตํด ํจ๋์ ์ถ๊ฐ์ ๋ณด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด ์์ ์์Any์ ๋ํด ์ด์ผ๊ธฐ๋ฅผ ํด ๋ณด๋ฉด ์ข์ต๋๋ค.