Talk about Swift Concurrency at TechFeed Experts Night
TIJ[5FDI'FFE&YQFSUT/JHIUͦΖͦΖ4XJGU$PODVSSFODZ
View Slide
4XJGUݴޠΨΠυຊޠ൛TXJGUPSH4XJGUʹ͍ͭͯهࡌ໊લTIJ[ ͣ͠J04ΤϯδχΞJOԬ!TU[O
4XJGU$PODVSSFODZw 4XJGUͰొͨ͠ݴޠػೳw ඇಉظॲཧΛಉظॲཧͱಉ͡Α͏ͳܗͰѻ͑Δ "TZODBXBJUw ෳͷඇಉظॲཧΛߏԽͯ͠ಉ࣌ฒྻʹ࣮ߦͰ͖Δ4USVDUVSFE$PODVSSFODZw ϚϧνεϨουؒͰͷσʔλڝ߹Λ͛Δ "DUPS
4XJGU$PODVSSFODZͷͭͷجຊػೳw "TZODBXBJUw 4USVDUVSFEDPODVSSFODZw "DUPS
"TZODBXBJU"TZODBXBJU
"TZODBXBJUͱʁw ಉ࣌ฒߦॲཧͷϒϩοΫΛߏங͢Δw ϒϩοΫ෦ͰॲཧΛதஅͯ͠ผͷඇಉظॲཧΛݺͼग़͢͜ͱ͕Ͱ͖Δw ͦΕ·Ͱͷ࣮ߦεϨουΛҰख์͠ɺͦͷεϨουଞͷॲཧΛ࣮ߦͰ͖Δw ݺͼग़ͨ͠ඇಉظॲཧͷ݁ՌΛػ͔ͯ͠ΒॲཧΛ࠶։͢Δ"TZODBXBJU"TZODBXBJUͱʁ
BTZODݺͼग़͠ਤͰݟΔ"TZODBXBJU"TZODBXBJUεϨου
BTZODBXBJU BTZOD݁ՌΛػਤͰݟΔ"TZODBXBJU"TZODBXBJU
ଞͷॲཧΛ࣮ߦͰ͖ΔBTZODBXBJUதஅBTZOD݁ՌΛػਤͰݟΔ"TZODBXBJU"TZODBXBJU
BTZODBTZODBXBJU ݁ՌΛऔಘBTZOD࠶։ਤͰݟΔ"TZODBXBJU"TZODBXBJU
࠶։લͱಉ͡εϨουͱݶΒͳ͍BTZODBXBJUBTZOD㱠࠶։ਤͰݟΔ"TZODBXBJU"TZODBXBJU
ίʔυͰݟΔ"TZODBXBJU"TZODBXBJUίʔϧόοΫܗࣜ
ίʔυͰݟΔ"TZODBXBJU"TZODBXBJU
"TZODBXBJUίʔυͰݟΔ"TZODBXBJU
ࣗવͳྲྀΕίʔυͰݟΔ"TZODBXBJU"TZODBXBJU
ࣗવͳྲྀΕBTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔίʔυͰݟΔ"TZODBXBJU"TZODBXBJU
ؔͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔࣗવͳྲྀΕBTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔίʔυͰݟΔ"TZODBXBJU"TZODBXBJU
ؔͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔؔͷείʔϓͰͯ݁͢͢ΔࣗવͳྲྀΕBTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔίʔυͰݟΔ"TZODBXBJU"TZODBXBJU
ؔͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔؔͷείʔϓͰͯ݁͢͢ΔࣗવͳྲྀΕBTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔΓ௨ৗͷܕίʔυͰݟΔ"TZODBXBJU"TZODBXBJU
4USVDUVSFEDPODVSSFODZ4USVDUVSFEDPODVSSFODZ
5BTLw 4XJGU$PODVSSFODZͷॲཧͷجຊ୯Ґw 5BTL୯ҐͰ࣮ߦঢ়گؔ࿈σʔλΛཧ ϩʔΧϧมɺΩϟϯηϧॲཧɺBTZODίʔυͷ։࢝தஅͳͲBTZODBXBJUBTZOD5BTLBTZODBXBJUBTZOD5BTLBTZODBXBJUBTZOD5BTL4USVDUVSFEDPODVSSFODZ5BTL
4USVDUVSFEDPODVSSFODZͱʁw BTZODBXBJUΛͬͯෳͷॲཧΛಉ࣌ฒྻʹ࣮ߦ͢Δw 5BTLؒͰ֊ߏΛߏஙͯ͠ɺඇಉظॲཧͷػΩϟϯηϧॲཧͳͲΛ͜ͷ֊Ͱͯ݁ͤ͢͞ΔBTZOD5BTLBTZOD5BTL 5BTL4USVDUVSFEDPODVSSFODZ4USVDUVSFEDPODVSSFODZͱʁ
BTZODMFU63-4FTTJPOEBUBϝιουIUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOGPVOEBUJPOVSMTFTTJPOEBUB4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFUBTZODMFUͷӈลʹBXBJUΛ͚ͳ͍߹݁ՌΛػ͠ͳ͍BXBJU4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFUUSZBXBJUͰ݁ՌΛػ4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFUBTZODMFUͷݺͼग़͠ݩλεΫBTZODMFU͔Β࡞͞ΕͨλεΫࢠλεΫࢠλεΫ͕શ෦ྃ͢Δ·ͰλεΫྃ͠ͳ͍4USVDUVSFEDPODVSSFODZBTZODMFUλεΫΛΩϟϯηϧ͢ΔͱࢠλεΫΩϟϯηϧঢ়ଶʹͳΔʜͳͲ
֎ଆͷ5BTL͔Βಠཱͨ͠5BTLΛ࡞6OTUSVDUVSFEDPODVSSFODZw पΓͷ5BTL͔Βಠཱͨ͠5BTLΛੜ͢Δw ݁ՌͷػΩϟϯηϧखಈͰ࣮ߦ͢Δඞཁ͕͋Δw 5BTLJOJUͱ5BTLEFUBDIFE͕͋Δ ಠཱͷ߹͍͕ҟͳΔBTZOD5BTLBTZOD5BTL 5BTL4USVDUVSFEDPODVSSFODZ6OTUSVDUVSFEDPODVSSFODZ
"DUPS"DUPS
"DUPSͱʁw Ұʹͭͷ5BTLͷΈ͕෦ঢ়ଶΛૢ࡞Ͱ͖ΔΑ͏ʹͯ͠ɺෳεϨου͔Βͷಉ࣌ಡΈॻ͖ʹΑΔσʔλڝ߹Λ͙BTZOD5BTLBDUPS5BTL 5BTLBTZOD BTZODσʔλڝ߹ෳεϨου͔Βಉ͡σʔλಡΈॻ͖Λಉ࣌ʹߦͬͨ݁Ռɺෆਖ਼ͳΛऔಘͯ͠͠·ͬͨΓɺΫϥογϡ͢ΔՄೳੑͷ͋Δঢ়ଶ"DUPS"DUPSͱʁ
DMBTTͰσʔλڝ߹͕ൃੜ͢Δ4XJGUͷDMBTTࢀরܕ෦ঢ়ଶෳεϨουʹڞ༗͞ΕΔՄೳੑ͕͋Δ"DUPSσʔλڝ߹
DMBTTͰσʔλڝ߹͕ൃੜ͢ΔλΠϛϯά࣍ୈͰظ͠ͳ͍݁ՌʹͳΔग़ྗ݁Ռ ˞5BTLEFUBDIFEͰಠཱͨ͠λεΫΛ࡞͢Δ"DUPSσʔλڝ߹
"DUPSͩͱσʔλڝ߹͕ൃੜ͠ͳ͍"DUPSσʔλڝ߹
"DUPSͩͱσʔλڝ߹͕ൃੜ͠ͳ͍݁Ռৗʹظ௨Γग़ྗ݁Ռ "DUPSσʔλڝ߹
"DUPSͷੑ࣭෦ঢ়ଶ"DUPSͰकΒΕ͍ͯΔ📬 🤏✉✉✉w ҰʹҰͭͷλεΫͷΈ࣮ߦ͢Δw "DUPSͦΕͧΕ֎ͷੈք͔Βִ͞Ε͍ͯΔ"DUPS֎ "DUPS"DUPS"DUPSͷੑ࣭
"DUPSؒͷભҠͷίετ"DUPS "DUPSw "DUPSؒͷભҠʹίετ͕͔͔Δ"DUPSҙ💸
7JFX.BJO"DUPSBDUPS.BJO"DUPS7JFX 7JFX.PEFM❌w 7JFX.PEFMΛBDUPSʹ͢Δͱ"DUPSؒͰͷεΠον͕ൃੜ͢Δ"DUPSҙ💸
7JFX.PEFMΛ.BJO"DUPSʹ͢Δw ಉ͡"DUPSͷॲཧʹͳΔ!.BJO"DUPSDMBTT.BJO"DUPS7JFX 7JFX.PEFM⭕"DUPSҙ🪙
4XJGU$PODVSSFODZw "TZODBXBJUw 4USVDUVSFEDPODVSSFODZw "DUPS
͋Γ͕ͱ͏͍͟͝·ͨ͠
ೖʹ͓͢͢Ί88%$ηογϣϯw 4XJGU$PODVSSFODZղઆηογϣϯ .FFUBTZODBXBJUJO4XJGU🌟Ұ൪࠷ॳʹݟΔͷʹ͓͢͢Ί &YQMPSFTUSVDUVSFEDPODVSSFODZJO4XJGU 1SPUFDUNVUBCMFTUBUFXJUI4XJGUBDUPSTw ΑΓ෦ͷΈΛΔηογϣϯ 4XJGUDPODVSSFODZ#FIJOEUIFTDFOFTw ҰॹʹαϯϓϧΛϦϑΝΫλϦϯά͠ͳ͕ΒֶΔηογϣϯ 4XJGUDPODVSSFODZ6QEBUFBTBNQMFBQQ🌟طଘίʔυ͔ΒͷมΛҰาҰาֶΔw ଞͷ'SBNFXPSLͱͷ࿈ܞํ๏ΛΔηογϣϯ #SJOH$PSF%BUBDPODVSSFODZUP4XJGUBOE4XJGU6* %JTDPWFSDPODVSSFODZJO4XJGU6* .BLFCMB[JOHGBTUMJTUTBOEDPMMFDUJPOWJFXT 6**NBHFͷ/FX"1*