UMC iOS ์„ธ๋ฏธ๋‚˜ 6์ฃผ์ฐจ: Thread

2022. 10. 31. 22:19ใ†UniversityMakeUsChallenge/UMCiOS

 

 

 

 

๋“œ๋””์–ด ๋ฐฐ์šด๋‹ค .. !
๋‘๋ฒˆ์งธ ์ •์˜์— ๊ฐ€๊นŒ์›€ (๊ทธ๋ƒฅ ์ปดํ“จํ„ฐ ์šฉ์–ด๋กœ ์•Œ์•„๋‘์ž)
์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ -> ํ”„๋กœ์„ธ์Šค
์Šค๋ ˆ๋“œ: ํ”„๋กœ์„ธ์Šค์˜ ์‹ค์งˆ์ ์ธ ์ž‘์—…์„ ํ•˜๋Š” ์ฃผ์ฒด, ํ”„๋กœ์„ธ์Šค์˜ ํ๋ฆ„์ด ์Šค๋ ˆ๋“œ์ด๋‹ค.
ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ/ํ”„๋กœ์„ธ์Šค์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค -> ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ
๋งˆ์น˜ ์—ฌ๋Ÿฌ ์ฐจ์„ ์˜ ๊ณ ์†๋„๋กœ์™€ ๊ฐ™์€ ๊ฒƒ! (๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ์ฐจ์— ๋น„์œ )
๋™๊ธฐ (sync) : ํ•˜๋‚˜์˜ ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ์ž‘์—…์œผ๋กœ!
๋น„๋™๊ธฐ : ๋™์‹œ์— ์ž‘์—… ์ฒ˜๋ฆฌ (๋ณ‘๋ ฌ์ ์œผ๋กœ) -> ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ๊ฐ์˜ ์ž‘์—…์˜ ์ข…๋ฃŒ ์‹œ์ ์„ ์•Œ ์ˆ˜ ์—†๋‹ค.
ํ˜„๊ธˆ ์ธ์ถœํ•˜๋Š” ์ƒํ™ฉ ๊ฐ€์ •
๋น„๋™๊ธฐ๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋ฉด (๋™์‹œ์— ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ฑด๋“œ๋ฆฌ๋ฉด?)
๋”ฐ๋ผ์„œ ๊ณต์œ  ์ž์›์„ ๋‹ค๋ฃฐ ๋•Œ, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์— ๋ฝ์„ ๊ฑธ์–ด๋‘๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค
์ •๋ฆฌํ•˜์ž๋ฉด, ์Šค๋ ˆ๋“œ๋ž€?
Test๋ฅผ ์œ„ํ•œ ํ•จ์ˆ˜

 

 

DispatchQueue.main() -> main ์Šค๋ ˆ๋“œ, UI ๊ด€๋ จ ์ž‘์—…์€ ๋ฐ˜๋“œ์‹œ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ๋งŒ!

DispatchQueue.global() -> ์ด์™ธ์˜ ๋‹ค์–‘ํ•œ ์ฒ˜๋ฆฌ๋“ค์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ == global

 

 

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋™๊ธฐ ์ฒ˜๋ฆฌ
์ˆœ์ฐจ์ ์œผ๋กœ print (ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ธ”๋Ÿญ ์•ˆ์—์„œ ์ˆœ์ฐจ์ ์ธ ํ๋ฆ„์€ ๋™๊ธฐ, ๋น„๋™๊ธฐ ์ƒ๊ด€์—†์ด ๋™์ผ, ์ˆœ์ฐจ์  ์ง„ํ–‰)
๋‹ค๋ฅธ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ
์ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด?
sync -> async : ์ž‘์—…๋“ค์ด ์„ž์ธ๋‹ค! (๋ณ‘๋ ฌ)
sleep 1์ดˆ ์ฃผ๋ฉด, ์ž‘์—… ์ƒํ™ฉ์„ ์ž์„ธํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ
๋‘๊ฐœ์˜ ๋ทฐ๋ฅผ ์„ ์–ธ
colorList ์„ ์–ธ
ํ•˜๋‚˜๋Š” ์ •๋ฐฉํ–ฅ์œผ๋กœ, ํ•˜๋‚˜๋Š” ์—ญ์ˆœ์œผ๋กœ ์ปฌ๋Ÿฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ๋ฉด์„œ UIView ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

 

 

์ด๋•Œ, UI ๊ด€๋ จ ์ž‘์—…์€ main์—์„œ! 

๋”ฐ๋ผ์„œ global ๋‚ด๋ถ€์—์„œ, UI ์ฝ”๋“œ๋งŒ main์œผ๋กœ ๊ฐ์‹ผ๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ๋ฆฌ๋ฉด์„œ, ํ•ด๋‹น ์ž‘์—…์€ main์œผ๋กœ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ

์ด์ œ ์™œ ๋””์ŠคํŒจ์น˜ ํ ์ฝ”๋“œ๋ฅผ ์ €๋ ‡๊ฒŒ ์“ฐ๋Š”์ง€ ์ดํ•ด๊ฐ€ ๊ฐ€๋„ค ;; 

 

 

 

์—ฌ๊ธฐ์„œ๋„ ๋ฐ˜๋ณต๋ฌธ ๊ฐ ๋‹จ๊ณ„ ํ•˜๋‹จ์— sleep์„ ์ค˜์„œ ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋ ‡๊ฒŒ ๋ทฐ ์ƒ‰์ƒ์ด ๋ฐ”๋€œ!
๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋” ๊ณต๋ถ€ํ•˜๊ธฐ + DispatchQueue ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ