inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

[ๅ›ณใซ็†่งฃใ™ใ‚‹] ๅŒๆœŸ๏ผˆsync๏ผ‰ ้žๅŒๆœŸ๏ผˆasync๏ผ‰ใฎๆฆ‚ๅฟตใฎๆœ€ใ‚‚็›ดๆ„Ÿ็š„ใช็†่งฃ

้žๅธธใซ็ฐกๅ˜ใซๅŒๆœŸ้žๅŒๆœŸใฎๆฆ‚ๅฟตใ‚’็†่งฃใงใใ‚‹19ๅˆ†็จ‹ๅบฆใฎ่ฌ›็พฉใงใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

sync
sync
async
async
sync
sync
async
async
Thumbnail

ใŠ็Ÿฅใ‚‰ใ›

2 ไปถ

  • allen๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏ๏ผใ‚ขใƒฉใƒณใงใ™ใ€‚

    ็งใฏ็Ÿญใ„่ฌ›็พฉใ‚’ไฝœใฃใฆใฟใพใ—ใŸใŒใ€ใŸใใ•ใ‚“ๅŠฉใ‘ใฆใ„ใŸใฎใ‹ๅˆ†ใ‹ใ‚‰ใชใ„ใงใ™ใญ๏ผใใ‚Œใงใ‚‚ๅฝนใซ็ซ‹ใฃใŸใจใ„ใ„ๅ—่ฌ›่ฉ•ใ‚’ๆฎ‹ใ—ใฆใใ ใ•ใฃใŸๆ–นใŒๅคšใ„ใฎใงใ€ๆŽˆๆฅญใ‚’ไฝœใฃใฆใฟใฆใ‚ˆใ‹ใฃใŸใจใŸใใ•ใ‚“ๆ„Ÿใ˜ใฆใ„ใพใ™ใ€‚ ^^

    ็›ธ้•ใงใฏใชใ„ใ€ๆ™‚ใ€…ๅŒๆœŸ้žๅŒๆœŸๆฆ‚ๅฟตไปฅๅค–ใซใ€

    Blocking / Non-Blockingใฎๆฆ‚ๅฟตใฏไฝ•ใงใ™ใ‹๏ผŸใ“ใ†ใ„ใ†่ณชๅ•ใŒไธŠใŒใฃใฆใใฆใ€‚

    ็งใŒๆŽˆๆฅญๅ†…ๅฎนใ‚’้€šใ—ใฆใŠ่ฉฑใ—ใŸๅŒๆœŸ/้žๅŒๆœŸๆฆ‚ๅฟตใ‚’ๅ…ˆใซ็ฟ’ใ†ใ“ใจใŒๅฝ“็„ถๅ„ชๅ…ˆใ ใจๆ€ใ„ใพใ™ใ€‚่จ€่ชžใซใ‚ˆใฃใฆใฏใ€Blocking / Non-Blockingใฎๆฆ‚ๅฟตใŒไฝฟใ‚ใ‚Œใฆใ„ใชใ„่จ€่ชžใ‚‚ใ‚ใ‚‹ใฎใงใ€ใ“ใ‚Œใ‚‰ใฎ้ƒจๅˆ†ใฏๅ‹‰ๅผทใ™ใ‚‹่จ€่ชžใซใใฎๅ†…ๅฎนใŒๅญ˜ๅœจใ™ใ‚‹ๆฆ‚ๅฟตใ‹ใฉใ†ใ‹ใ‚’ๆœ€ๅˆใซ่ฆ‹ใฆใฟใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใ‚ˆใ†ใงใ™ใ€‚ ^^

    ใฏใ„ใ€ใจใซใ‹ใBlocking / Non-Blockingใฎๆฆ‚ๅฟตใŒไฝฟใ‚ใ‚Œใ‚‹่จ€่ชžใชใ‚‰ใ€ไปฅไธ‹ใฎๅ†…ๅฎนใ‚’ๅ‚่€ƒใซใ—ใฆใฟใ‚‹ใจ่‰ฏใ„ใจๆ€ใ„ใพใ™ใ€‚


    โ–ถ๏ธŽ Blocking / Non-Blocking
    ใฏๅ‘ผใณๅ‡บใ•ใ‚Œใ‚‹้–ขๆ•ฐใŒใ™ใใซ่ฟ”ใ•ใ‚Œใ‚‹ใ‹ใฉใ†ใ‹ใŒ้‡่ฆใชๆฆ‚ๅฟต

    1) Blocking - ใ™ใใซ่ฟ”ใ•ใชใ„(ไป•ไบ‹ใ‚’ๅฆจใ’ใ‚‹)

    2) Non-Blocking - ๅณๆ™‚ๆˆปใ‚Š



    โ–ถ๏ธŽๅŒๆœŸ/้žๅŒๆœŸใฏใ€ไฝœๆฅญๅฎŒไบ†ใ‹ใฉใ†ใ‹ใ‚’ๅ‘ผใณๅ‡บใ—ใŸ้–ขๆ•ฐใŒๆฐ—ใซใชใ‚‹ใฎใ‹ใ€ๅ‘ผใณๅ‡บใ•ใ‚ŒใŸ้–ขๆ•ฐ๏ผˆcallback๏ผ‰ใŒๆฐ—ใซใ™ใ‚‹ใฎใ‹๏ผŸ

    1) ๅŒๆœŸ- ๅ‘ผใณๅ‡บใ—ใŸ้–ขๆ•ฐใŒไฝœๆฅญๅฎŒไบ†

    2)้žๅŒๆœŸ - ๅ‘ผใณๅ‡บใ•ใ‚ŒใŸ้–ขๆ•ฐ(callback้–ขๆ•ฐ)ใŒไฝœๆฅญๅฎŒไบ†


    ๏ผˆใŸใ ใ—ใ€ใ“ใฎใ‚ˆใ†ใชๆฆ‚ๅฟตใŒๅˆใ‚ใ›ใฆBlocking๏ผ†Asyncใฏใฉใ†ใ›ไป–ใฎใ“ใจใŒใงใใชใ„ใฎใงใ‚ใ–ใ‚ใ–ไฝฟ็”จใ™ใ‚‹ใ“ใจใฏใชใ„ใจใ„ใ†ใ€‚๏ผ‰



    ใใ—ใฆไธ€่ˆฌ็š„ใซใ€Blocking / Non-Blockingใฎๆฆ‚ๅฟตใŒไฝฟใ‚ใ‚Œใฆใ„ใชใ„่จ€่ชžใงใฏใ€็งใŒใ‚ฏใƒฉใ‚นใง่ฉฑใ—ใŸใ‚ˆใ†ใซ


    ๅŒๆœŸใฏBlockingใจ็ตๅˆใ•ใ‚ŒใŸๆฆ‚ๅฟตใงใ€้žๅŒๆœŸใฏNon-Blockingใจ็ตๅˆใ•ใ‚ŒใŸๆฆ‚ๅฟตใจ่€ƒใˆใ‚Œใฐๆฅฝใงใ™ใ€‚

    ใใ—ใฆใ€ใ‚‚ใ—ใ‹ใ—ใŸใ‚‰ไป–ใฎๆ–นใŒๆ›ธใ„ใฆใจใฆใ‚‚ไธŠๆ‰‹ใซๆ›ธใ„ใฆใŠใ„ใŸ่ณ‡ๆ–™ใŒใ‚ใ‚Šใ€ใƒชใƒณใ‚ฏใ‚‚ใคใ‘ใพใ™ใ€‚^^

    https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/

    https://siyoon210.tistory.com/147


    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ :)

    1
  • allen๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใฏใ„ใ€ใ“ใ‚“ใซใกใฏใ‚ขใƒฉใƒณใงใ™ใ€‚

    ใ€ŒๅŒๆœŸ้žๅŒๆœŸใฎๆฆ‚ๅฟตใฎๆœ€ใ‚‚็›ดๆ„Ÿ็š„ใช็†่งฃใ€ใ‚ฏใƒฉใ‚นใ‚’ใ”่ฆงใ„ใŸใ ใใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    ็Ÿญใ„ๆฆ‚ๅฟตใงใ™ใŒใ€็งใฎๆœ€ๅˆใฎ่ฌ›็พฉใ‚’่žใ„ใฆใใ ใ•ใฃใŸ็š†ใ•ใ‚“ใซๆ„Ÿ่ฌใ—ใฆใ„ใŸใ ใใŸใ„ใงใ™ใญใ€‚ใ‚ˆใๆ’ฎใฃใŸใจๆ€ใ„ใพใ—ใŸใŒใ€ๆŒฏใ‚Š่ฟ”ใฃใฆใพใŸ่ฆ‹ใŸใ‚‰ใ€่จ€่‘‰ใ‚‚ใ‚ใพใ‚Šใซใ‚‚ใƒใ‚ฏใƒใ‚ฏใงใ€็นฐใ‚Š่ฟ”ใ—ใ™ใ‚‹้ƒจๅˆ†ใ‚‚ๅคšใโ€ฆๅฐ‘ใ—ๆฎ‹ๅฟตใŒใŸใใ•ใ‚“ๆฎ‹ใ‚Šใพใ™ใญใ€‚

    ใใ‚ŒใงๆฉŸไผšใซใชใ‚Œใฐๆ™‚้–“ใŒ็ตŒใคใซใคใ‚Œใฆใ€ใ•ใ‚‰ใซ่ฟฝๅŠ ใฎๅ†…ๅฎนใ‚’ๅ…ฅใ‚Œใฆๅ†ใณๆ’ฎใฃใฆใฟใŸใ„ใจใ„ใ†ๆฐ—ใ‚‚ใ—ใพใ™ใ€‚

    ใ‚‚ใ†ใ™ใ่ฉฆใ—ใฆใฟใพใ™๏ผ

    ไปŠๆ—ฅใฏ้•ใ„ใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚iOS้–‹็™บ่€…ใฎใŸใ‚ใซใ€ๅŒๆ™‚ๆ€งใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใซ้–ขใ™ใ‚‹่ฉณ็ดฐใช่ฌ›็พฉใ‚’ใ‚ชใƒผใƒ—ใƒณใ—ใŸใƒ‹ใƒฅใƒผใ‚นใ‚’ใŠ็Ÿฅใ‚‰ใ›ใ—ใ‚ˆใ†ใจๆ›ธใ„ใฆใ„ใพใ™ใ€‚

    iOSๅŒๆ™‚ๅฎŸ่กŒใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใ€ๅŒๆœŸ้žๅŒๆœŸๅ‡ฆ็†ใ€ใŠใ‚ˆใณGCD / Operation - ใƒ‡ใ‚ฃใ‚นใƒ‘ใƒƒใƒใ‚ญใƒฅใƒผใจใ‚ชใƒšใƒฌใƒผใ‚ทใƒงใƒณใ‚ญใƒฅใƒผใฎ็†่งฃ

    https://www.inflearn.com/course/iOS-Concurrency-GCD-Operation

    ไธŠ่จ˜ใฎไฝๆ‰€ใซๅ…ฅใฃใฆใใ ใ•ใ„ใ€‚

    ๆทฑๅˆปใชๅ†…ๅฎนใพใงใ™ในใฆๆ‰ฑใฃใŸ่ฌ›็พฉใ ใ‹ใ‚‰โ€ฆ

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0

็„กๆ–™