Job
์ฝํ๋ฆฐ ์ฝ๋ฃจํด์์ Job์ ์ฝ๋ฃจํด์ ์๋ช ์ฃผ๊ธฐ์ ์คํ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ํต์ฌ์ ์ธ ์ธํฐํ์ด์ค์ ๋๋ค. ์ฝ๋ฃจํด์ ์์ฑํ ๋ ๋ฐํ๋๋ Job ๊ฐ์ฒด๋ฅผ ํตํด ์ฝ๋ฃจํด์ ์์, ์ทจ์, ์๋ฃ ์ฌ๋ถ ๋ฑ์ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ณต์กํ ๋น๋๊ธฐ ์์ ์์๋ ์ฝ๋ฃจํด์ ํ๋ฆ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Job์ ์ญํ
์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ: ์ฝ๋ฃจํด์ ์์๋ถํฐ ์๋ฃ๊น์ง์ ์ํ๋ฅผ ์ถ์ ํฉ๋๋ค.
์ทจ์ ๊ธฐ๋ฅ ์ ๊ณต: ํ์์ ๋ฐ๋ผ ์ฝ๋ฃจํด์ ์ทจ์ํ ์ ์์ผ๋ฉฐ, ์ทจ์ ์ ์์ ์ฝ๋ฃจํด๊น์ง ์ ํ๋ฉ๋๋ค.
์๋ฃ ๋๊ธฐ:
join()
ํจ์๋ฅผ ํตํด ์ฝ๋ฃจํด์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค.
Job ์์ฑ๊ณผ ์ฌ์ฉ
์ฝ๋ฃจํด ๋น๋์ธ launch
๋ async
๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฃจํด์ ์์ฑํ๋ฉด ๋ด๋ถ์ ์ผ๋ก Job ๊ฐ์ฒด๊ฐ ๋ฐํ๋ฉ๋๋ค.
์ด๋ ๊ฒ ์์ฑ๋ Job ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฃจํด์ ์ํ๋ฅผ ํ์ธํ๊ฑฐ๋ ์ ์ดํ ์ ์์ต๋๋ค.
Job์ ์ฃผ์ ๋ฉ์๋์ ์์ฑ
cancel()
: ์ฝ๋ฃจํด์ ์ทจ์ํฉ๋๋ค. ์ทจ์๋ ์ฝ๋ฃจํด์CancellationException
์ ๋ฐ์์ํค๋ฉฐ, ์ฝ๋ฃจํด ๋ด์์ ์ด๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.join()
: ์ฝ๋ฃจํด์ด ์๋ฃ๋ ๋๊น์ง ํ์ฌ ์ค๋ ๋๋ฅผ ์ผ์ ์ค๋จํฉ๋๋ค.cancelAndJoin()
: ์ฝ๋ฃจํด์ ์ทจ์ํ๊ณ , ์๋ฃ๋ ๋๊น์ง ๋๊ธฐํฉ๋๋ค.isActive
: ์ฝ๋ฃจํด์ด ํ์ฑํ๋์ด ์คํ ์ค์ธ์ง ํ์ธํฉ๋๋ค.isCompleted
: ์ฝ๋ฃจํด์ด ์๋ฃ๋์๋์ง ํ์ธํฉ๋๋ค.
Job์ ๊ณ์ธต ๊ตฌ์กฐ์ ์ทจ์ ์ ํ
Job์ ๋ถ๋ชจ-์์ ๊ด๊ณ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ถ๋ชจ ์ฝ๋ฃจํด ๋ด์์ ์์ ์ฝ๋ฃจํด์ ์์ฑํ๋ฉด, ์์ ์ฝ๋ฃจํด์ Job์ ๋ถ๋ชจ์ Job์ ์ข ์๋ฉ๋๋ค.
๋ถ๋ชจ Job์ด ์ทจ์๋๋ฉด ์์ Job๋ ํจ๊ป ์ทจ์๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ฌ ์ฝ๋ฃจํด์ด ํ๋ ฅํ์ฌ ์์ ํ ๋, ์ ์ฒด ์์ ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
Job์ ์ํ
Job์ ์ฝ๋ฃจํด์ ์งํ ์ํฉ์ ๋ฐ๋ผ ๋ค์ํ ์ํ๋ฅผ ๊ฐ์ง๋๋ค.
New: ์ฝ๋ฃจํด์ด ์์ฑ๋์์ง๋ง ์์ง ์์๋์ง ์์ ์ํ.
Active: ์ฝ๋ฃจํด์ด ์คํ ์ค์ธ ์ํ.
Completing: ์ฝ๋ฃจํด์ ์คํ์ด ์ข ๋ฃ๋์์ง๋ง, ์์ง ์๋ฃ ์ฒ๋ฆฌ ์ค์ธ ์ํ.
Completed: ์ฝ๋ฃจํด์ด ์ ์์ ์ผ๋ก ์๋ฃ๋ ์ํ.
Cancelling: ์ฝ๋ฃจํด์ด ์ทจ์ ์์ฒญ์ ๋ฐ์ ์ข ๋ฃ ์ค์ธ ์ํ.
Cancelled: ์ฝ๋ฃจํด์ด ์ทจ์๋์ด ์ข ๋ฃ๋ ์ํ.
์์ ์ฝ๋
์๋๋ Job์ ํ์ฉํ์ฌ ์ฝ๋ฃจํด์ ๊ด๋ฆฌํ๋ ์์ ์ ๋๋ค.
์ค๋ช :
launch
๋ฅผ ํตํด ์ฝ๋ฃจํด์ ์์ฑํ๊ณ , Job ๊ฐ์ฒด๋ฅผ ๋ฐ์ต๋๋ค.repeat
์delay
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต ์์ ์ ์ํํฉ๋๋ค.๋ฉ์ธ ์ฝ๋ฃจํด์์
delay(1000L)
๋ก 1์ด๊ฐ ๋๊ธฐํ ํ,job.cancelAndJoin()
์ ํธ์ถํ์ฌ ์ฝ๋ฃจํด์ ์ทจ์ํ๊ณ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
Job์ ํ์ฉ ์ฌ๋ก
๋คํธ์ํฌ ์์ฒญ ์ทจ์: ์ฌ์ฉ์๊ฐ ํ๋ฉด์ ๋ฒ์ด๋๊ฑฐ๋ ์ทจ์ ๋ฒํผ์ ๋๋ฅผ ๋ ์งํ ์ค์ธ ๋คํธ์ํฌ ์์ฒญ์ ์ทจ์ํ ์ ์์ต๋๋ค.
ํ์์์ ์ฒ๋ฆฌ: ์ผ์ ์๊ฐ์ด ์ง๋๋ ์๋ฃ๋์ง ์๋ ์์ ์ ์ทจ์ํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค.
๋ณ๋ ฌ ์์ ๊ด๋ฆฌ: ์ฌ๋ฌ ์ฝ๋ฃจํด์ ์คํํ๊ณ , ๋ชจ๋ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๋๊ธฐํ๊ฑฐ๋, ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์์ ์ ์ทจ์ํ ์ ์์ต๋๋ค.
์ฃผ์ ์ฌํญ
์ฝ๋ฃจํด ๋ด๋ถ์์ ์ทจ์๋ฅผ ํ์ธํ๋ ค๋ฉด ์ทจ์ ๊ฐ๋ฅ ์ง์ ์ด ํ์ํฉ๋๋ค.
delay
,yield
๋ฑ์ ํจ์๋ ์ทจ์ ๊ฐ๋ฅ ์ง์ ์ผ๋ก, ์ฝ๋ฃจํด์ด ์ทจ์๋์๋์ง ํ์ธํ๊ณCancellationException
์ ๋ฐ์์ํต๋๋ค.์ทจ์ ๋ถ๊ฐ๋ฅํ ์ฝ๋ ๋ธ๋ก์ด ์์ผ๋ฉด ์ฝ๋ฃจํด์ด ์ฆ์ ์ทจ์๋์ง ์์ ์ ์์ผ๋ฏ๋ก, ์ฅ์๊ฐ ์คํ๋๋ ์์ ์ ์ ์ ํ ๋ถํ ํ์ฌ ์ทจ์ ๊ฐ๋ฅํ๋๋ก ์ค๊ณํด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก
Job์ ์ฝ๋ฃจํด์ ์คํ๊ณผ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํต์ฌ์ ์ธ ์ญํ ์ ํฉ๋๋ค. ์ด๋ฅผ ํ์ฉํ์ฌ ์ฝ๋ฃจํด์ ์ํ๋ฅผ ์ ์ดํ๊ณ , ๋ณต์กํ ๋น๋๊ธฐ ์์ ์์๋ ์์ ์ ์ด๊ณ ํจ์จ์ ์ธ ์ฝ๋ ์์ฑ์ ํ ์ ์์ต๋๋ค.
Last updated
Was this helpful?