Upgrade to Pro — share decks privately, control downloads, hide ads and more …

そろそろSwift Concurrency

そろそろSwift Concurrency

Talk about Swift Concurrency at TechFeed Experts Night

sztk1209@gmail.com

September 07, 2022
Tweet

More Decks by sztk1209@gmail.com

Other Decks in Programming

Transcript

  1. TIJ[ 5FDI'FFE&YQFSUT/JHIU  ͦΖͦΖ4XJGU$PODVSSFODZ

  2. 4XJGUݴޠΨΠυ೔ຊޠ൛ TXJGUPSH 4XJGUʹ͍ͭͯهࡌ ໊લTIJ[ ͣ͠  J04ΤϯδχΞJO෱Ԭ !TU[O

  3. 4XJGU$PODVSSFODZ w 4XJGUͰొ৔ͨ͠ݴޠػೳ w ඇಉظॲཧΛಉظॲཧͱಉ͡Α͏ͳܗͰѻ͑Δ "TZODBXBJU  w ෳ਺ͷඇಉظॲཧΛߏ଄Խͯ͠ಉ࣌ฒྻʹ࣮ߦͰ͖Δ 4USVDUVSFE$PODVSSFODZ

     w ϚϧνεϨουؒͰͷσʔλڝ߹Λ๷͛Δ "DUPS
  4. 4XJGU$PODVSSFODZͷͭͷجຊػೳ w "TZODBXBJU w 4USVDUVSFEDPODVSSFODZ w "DUPS

  5. "TZODBXBJU "TZODBXBJU

  6. "TZODBXBJUͱ͸ʁ w ಉ࣌ฒߦॲཧͷϒϩοΫΛߏங͢Δ w ϒϩοΫ಺෦ͰॲཧΛதஅͯ͠ผͷඇಉظॲཧΛݺͼग़͢͜ͱ ͕Ͱ͖Δ w ͦΕ·Ͱͷ࣮ߦεϨουΛҰ౓ख์͠ɺͦͷεϨου͸ଞͷ ॲཧΛ࣮ߦͰ͖Δ w

    ݺͼग़ͨ͠ඇಉظॲཧͷ݁ՌΛ଴ػ͔ͯ͠ΒॲཧΛ࠶։͢Δ "TZODBXBJU"TZODBXBJUͱ͸ʁ
  7. BTZOD ݺͼग़͠ ਤͰݟΔ"TZODBXBJU "TZODBXBJU εϨου

  8. BTZOD BXBJU BTZOD ݁ՌΛ଴ػ ਤͰݟΔ"TZODBXBJU "TZODBXBJU

  9. ଞͷॲཧΛ࣮ߦͰ͖Δ BTZOD BXBJU தஅ BTZOD ݁ՌΛ଴ػ ਤͰݟΔ"TZODBXBJU "TZODBXBJU

  10. BTZOD BTZOD BXBJU ݁ՌΛऔಘ BTZOD ࠶։ ਤͰݟΔ"TZODBXBJU "TZODBXBJU

  11. ࠶։લͱಉ͡εϨουͱ͸ݶΒͳ͍ BTZOD BXBJU BTZOD 㱠 ࠶։ ਤͰݟΔ"TZODBXBJU "TZODBXBJU

  12. ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU ίʔϧόοΫܗࣜ

  13. ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  14. ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  15. "TZODBXBJU ίʔυͰݟΔ"TZODBXBJU

  16. ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  17. ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  18. ࣗવͳྲྀΕ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  19. ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  20. ؔ਺ͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔ ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  21. ؔ਺ͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔ ؔ਺ͷείʔϓ಺Ͱ͢΂ͯ׬݁͢Δ ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  22. ؔ਺ͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔ ؔ਺ͷείʔϓ಺Ͱ͢΂ͯ׬݁͢Δ ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ໭Γ஋͸௨ৗͷܕ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU

  23. 4USVDUVSFE DPODVSSFODZ 4USVDUVSFEDPODVSSFODZ

  24. 5BTL w 4XJGU$PODVSSFODZͷॲཧͷجຊ୯Ґ w 5BTL୯ҐͰ࣮ߦঢ়گ΍ؔ࿈σʔλΛ؅ཧ 
 ϩʔΧϧม਺ɺΩϟϯηϧॲཧɺBTZODίʔυͷ։࢝தஅͳͲ BTZOD BXBJU BTZOD

    5BTL BTZOD BXBJU BTZOD 5BTL BTZOD BXBJU BTZOD 5BTL 4USVDUVSFEDPODVSSFODZ5BTL
  25. 4USVDUVSFEDPODVSSFODZͱ͸ʁ w BTZODBXBJUΛ࢖ͬͯෳ਺ͷॲཧΛಉ࣌ฒྻʹ࣮ߦ͢Δ w 5BTLؒͰ֊૚ߏ଄Λߏஙͯ͠ɺඇಉظॲཧͷ଴ػ΍Ωϟϯη ϧॲཧͳͲΛ͜ͷ֊૚಺Ͱ͢΂ͯ׬݁ͤ͞Δ BTZOD 5BTL BTZOD 5BTL

    5BTL 4USVDUVSFEDPODVSSFODZ4USVDUVSFEDPODVSSFODZͱ͸ʁ
  26. BTZODMFU 63-4FTTJPOEBUBϝιου IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOGPVOEBUJPOVSMTFTTJPOEBUB 4USVDUVSFEDPODVSSFODZBTZODMFU

  27. BTZODMFU BTZODMFUͷӈลʹBXBJUΛ෇͚ͳ͍৔߹݁ՌΛ଴ػ͠ͳ͍ BXBJU 4USVDUVSFEDPODVSSFODZBTZODMFU

  28. BTZODMFU 4USVDUVSFEDPODVSSFODZBTZODMFU

  29. BTZODMFU USZBXBJUͰ݁ՌΛ଴ػ 4USVDUVSFEDPODVSSFODZBTZODMFU

  30. BTZODMFU BTZODMFUͷݺͼग़͠ݩ਌λεΫ BTZODMFU͔Β࡞੒͞ΕͨλεΫࢠλεΫ ࢠλεΫ͕શ෦׬ྃ͢Δ·Ͱ਌λεΫ͸׬ྃ͠ͳ͍ 4USVDUVSFEDPODVSSFODZBTZODMFU ਌λεΫΛΩϟϯηϧ͢ΔͱࢠλεΫ΋Ωϟϯηϧঢ়ଶʹͳΔ ʜͳͲ

  31. ֎ଆͷ5BTL͔Βಠཱͨ͠5BTLΛ࡞੒ 6OTUSVDUVSFEDPODVSSFODZ w पΓͷ5BTL͔Βಠཱͨ͠5BTLΛੜ੒͢Δ w ݁Ռͷ଴ػ΍Ωϟϯηϧ͸खಈͰ࣮ߦ͢Δඞཁ͕͋Δ w 5BTLJOJUͱ5BTLEFUBDIFE͕͋Δ ಠཱͷ౓߹͍͕ҟͳΔ BTZOD

    5BTL BTZOD 5BTL 5BTL 4USVDUVSFEDPODVSSFODZ6OTUSVDUVSFEDPODVSSFODZ
  32. "DUPS "DUPS

  33. "DUPSͱ͸ʁ w Ұ౓ʹͭͷ5BTLͷΈ͕಺෦ঢ়ଶΛૢ࡞Ͱ͖ΔΑ͏ʹͯ͠ɺෳ਺ε Ϩου͔Βͷಉ࣌ಡΈॻ͖ʹΑΔσʔλڝ߹Λ๷͙ BTZOD 5BTL BDUPS 5BTL 5BTL BTZOD

    BTZOD σʔλڝ߹ෳ਺εϨου͔Βಉ͡σʔλ΁ಡΈॻ͖Λಉ࣌ʹߦͬͨ݁Ռɺෆਖ਼ͳ஋Λऔಘ͠ ͯ͠·ͬͨΓɺΫϥογϡ͢ΔՄೳੑͷ͋Δঢ়ଶ "DUPS"DUPSͱ͸ʁ
  34. DMBTTͰσʔλڝ߹͕ൃੜ͢Δ 4XJGUͷDMBTT͸ࢀরܕ ಺෦ঢ়ଶ͸ෳ਺εϨουʹڞ༗͞ΕΔՄೳੑ͕͋Δ "DUPSσʔλڝ߹

  35. DMBTTͰσʔλڝ߹͕ൃੜ͢Δ λΠϛϯά࣍ୈͰظ଴͠ͳ͍݁ՌʹͳΔ ग़ྗ݁Ռ       

        ˞5BTLEFUBDIFEͰಠཱͨ͠λεΫΛ࡞੒͢Δ "DUPSσʔλڝ߹
  36. "DUPSͩͱσʔλڝ߹͕ൃੜ͠ͳ͍ "DUPSσʔλڝ߹

  37. "DUPSͩͱσʔλڝ߹͕ൃੜ͠ͳ͍ ݁Ռ͸ৗʹظ଴௨Γ ग़ྗ݁Ռ      "DUPSσʔλڝ߹

  38. "DUPSͷੑ࣭ ಺෦ঢ়ଶ͸"DUPSͰकΒΕ͍ͯΔ 📬 🤏 ✉ ✉ ✉ w Ұ౓ʹҰͭͷλεΫͷΈ࣮ߦ͢Δ w

    "DUPS͸ͦΕͧΕ֎ͷੈք͔Βִ཭͞Ε͍ͯΔ "DUPS֎ "DUPS಺ "DUPS"DUPSͷੑ࣭
  39. "DUPSؒͷભҠͷίετ "DUPS "DUPS w "DUPSؒͷભҠʹ͸ίετ͕͔͔Δ "DUPS஫ҙ఺ 💸

  40. 7JFX͸.BJO"DUPS BDUPS .BJO"DUPS 7JFX 7JFX.PEFM ❌ w 7JFX.PEFMΛBDUPSʹ͢Δͱ"DUPSؒͰͷεΠον͕ൃੜ͢Δ "DUPS஫ҙ఺ 💸

  41. 7JFX.PEFMΛ.BJO"DUPSʹ͢Δ w ಉ͡"DUPS಺ͷॲཧʹͳΔ !.BJO"DUPSDMBTT .BJO"DUPS 7JFX 7JFX.PEFM ⭕ "DUPS஫ҙ఺ 🪙

  42. 4XJGU$PODVSSFODZ w "TZODBXBJU w 4USVDUVSFEDPODVSSFODZ w "DUPS

  43. ͋Γ͕ͱ͏͍͟͝·ͨ͠

  44. ೖ໳ʹ͓͢͢Ί88%$ηογϣϯ w 4XJGU$PODVSSFODZղઆηογϣϯ 
 .FFUBTZODBXBJUJO4XJGU🌟Ұ൪࠷ॳʹݟΔͷʹ͓͢͢Ί 
 &YQMPSFTUSVDUVSFEDPODVSSFODZJO4XJGU 
 1SPUFDUNVUBCMFTUBUFXJUI4XJGUBDUPST w

    ΑΓ಺෦ͷ࢓૊ΈΛ஌Δηογϣϯ 
 4XJGUDPODVSSFODZ#FIJOEUIFTDFOFT w ҰॹʹαϯϓϧΛϦϑΝΫλϦϯά͠ͳ͕Βֶ΂Δηογϣϯ 
 4XJGUDPODVSSFODZ6QEBUFBTBNQMFBQQ🌟طଘίʔυ͔Βͷม׵ΛҰาҰาֶ΂Δ w ଞͷ'SBNFXPSLͱͷ࿈ܞํ๏Λ஌Δηογϣϯ 
 #SJOH$PSF%BUBDPODVSSFODZUP4XJGUBOE4XJGU6* 
 %JTDPWFSDPODVSSFODZJO4XJGU6* 
 .BLFCMB[JOHGBTUMJTUTBOEDPMMFDUJPOWJFXT 6**NBHFͷ/FX"1*