[Python] ์ฝ”๋ฃจํ‹ด

ํŒŒ์ด์ฌ์—์„  ํ•จ์ˆ˜์™€ yield ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋ฃจํ‹ด์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.


image

image ์ €๋Ÿฌ๋ฉด new_coroutine์ด ์ฝ”๋ฃจํ‹ด ์ƒ์„ฑ์šฉ ํ•จ์ˆ˜๊ฐ€ ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  co๋Š” ์ฝ”๋ฃจํ‹ด ๊ฐ์ฒด๋ผ๊ณ  ๋ถ€๋ฅด๋„๋ก ํ•˜๊ฒ ๋‹ค.
๊ฐ์ฒด๋กœ next ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ์ €๊ธฐ ์ƒ์„ฑํ•จ์ˆ˜์— ์žˆ๋Š” ์ œ์–ดํ๋ฆ„์ด ๊ทธ๋Œ€๋กœ ์ˆ˜ํ–‰๋œ๋‹ค.
๋‹จ, 'yield'๊ฐ€ ์กด์žฌํ• ๋•Œ๊นŒ์ง€๋‹ค. yield๊ฐ€ ์žˆ๋Š”๊ณณ์„ ๋งŒ๋‚˜๋ฉด ๊ทธ ์ฆ‰์‹œ ์ •์ง€๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ์ฒด ๋‚ด์˜ ์ œ์–ดํ๋ฆ„์€ send๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ๋•Œ๊นŒ์ง€ ์ •์ง€๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  send๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๋‚ด์ง€๋ฉด ๊ทธ๊ฑธ yield๊ฐ€ ์žˆ๋˜ ์ž๋ฆฌ์— ๊ทธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋”ฑ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.

์•„ ์ฐธ ์ฝ”๋“œ์— ์“ฐ๋Š”๊ฑธ ๊นœ๋นกํ–ˆ๋Š”๋ฐ.
co.close()๋ฅผ ํ•˜๋ฉด ์ฝ”๋ฃจํ‹ด์ด ์ข…๋ฃŒ๋œ๋‹ค.


ํ•˜๋‚˜์˜ ์ฝ”๋ฃจํ‹ด ์ƒ์„ฑํ•จ์ˆ˜๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฝ”๋ฃจํ‹ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
์ด๋ ‡๊ฒŒ image