[Rust] ์Šค๋ ˆ๋”ฉ

์Šค๋ ˆ๋”ฉ์— ํ•„์š”ํ•œ ๋ฉค๋ฒ„๋“ค์€ std::thread ๋ชจ๋“ˆ์— ์žˆ๋‹ค.
https://doc.rust-lang.org/std/thread/


์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ ํ˜ธ์ถœํ•ด์ฃผ๋Š” ๋†ˆ์€ spawn์ด๋‹ค.
์—ฌ๊ธฐ๋‹ค ํ•จ์ˆ˜๋ฅผ ์ „ํ•ด์ฃผ๋ฉด ๊ทธ๊ฑธ ๊ฐ–๋‹ค๊ฐ€ ๋Œ๋ ค์ค€๋‹ค.

์ด๋Ÿฌ..๋ฉด image

image ์Šค๋ ˆ๋“œ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋„ ์ „์— main์ด ๋๋‚˜๋ฒ„๋ ค์„œ ์ถœ๋ ฅ์ด ์•ˆ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ธฐ๋‹ค๋ ค์ค˜์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ๋Š” join์œผ๋กœ ๋ธ”๋ฝ์„ ๊ฑธ์–ด์ค€๋‹ค.
์ € ์Šค๋ ˆ๋“œ๊ฐ€ ๋๋‚ ๋•Œ๊นŒ์ง€ main์„ ์ €๊ธฐ์„œ ์ •์ง€ํ•œ๋‹จ ๋œป์ด๋‹ค. image

image ์ž˜๋œ๋‹ค.

์ฐธ๊ณ ๋กœ spawn์ด ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฑด JoinHandle์ด๋ผ๋Š” ํƒ€์ž…์˜ ๊ฐ์ฒด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ์—์„œ ์™ธ๋ถ€์˜ ๊ฐ’์„ ๊ฐ€์ ธ๊ฐˆ ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ๋Š”, ์ด๋™ํด๋กœ์ €๋ฅผ ์“ฐ๋Š”๊ฒƒ์ด ์ข‹๋‹ค.

์Šค๋ ˆ๋“œ์—์„œ ์ผ๋ฐ˜ํด๋กœ์ ธ๋กœ ์บก์ณ๋ฅผ ํ•˜๋”๋ผ๋„, ์Šค๋ ˆ๋“œ ๊ตฌ๋™ ์ค‘์— ๊ทธ ์ฐธ์กฐ-์บก์ณํ•œ ๊ฐ’์ด ์œ ํšจํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. image

image ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.


ํด๋กœ์ € ์•ž์— move๋ฅผ ๋ถ™์ด๋ฉด ์ด์ œ ์ด๋™ํด๋กœ์ €๊ฐ€ ๋ผ์„œ ์ œ๋Œ€๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
์ด๋™ํด๋กœ์ €๋Š” ์ฐธ์กฐ์บก์ณ๋งŒ ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ '์†Œ์œ ๊ถŒ'์„ ์ด๋™์‹œํ‚จ๋‹ค.
์ด์ œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฃฝ์ง€ ์•Š๋Š” ํ•œ ์บก์ณ๋œ ๋ณ€์ˆ˜๋“ค๋„ ์ฃฝ์ง€ ์•Š๋Š”๊ฒƒ์ด๋‹ค... image

image