Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
そろそろSwift Concurrency
Search
[email protected]
September 07, 2022
Programming
1
520
そろそろSwift Concurrency
Talk about Swift Concurrency at TechFeed Experts Night
[email protected]
September 07, 2022
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
Swift compiler 101 & How async function works
shiz
0
35
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
270
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
1.7k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
14k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
570
複雑さに立ち向かうためのコードリーディング入門
shiz
35
14k
Swift Observation
shiz
5
830
Swift Reflection
shiz
1
240
Swift Concurrency Next Step
shiz
7
8.2k
Other Decks in Programming
See All in Programming
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
330
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
童醫院敏捷轉型的實踐經驗
cclai999
0
200
すべてのコンテキストを、 ユーザー価値に変える
applism118
2
940
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
110
GraphRAGの仕組みまるわかり
tosuri13
8
500
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
380
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
320
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
700
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
440
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
660
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
230
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
KATA
mclloyd
30
14k
Writing Fast Ruby
sferik
628
62k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Producing Creativity
orderedlist
PRO
346
40k
A Tale of Four Properties
chriscoyier
160
23k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Faster Mobile Websites
deanohume
307
31k
The Language of Interfaces
destraynor
158
25k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Transcript
TIJ[ 5FDI'FFE&YQFSUT/JHIU ͦΖͦΖ4XJGU$PODVSSFODZ
4XJGUݴޠΨΠυຊޠ൛ TXJGUPSH 4XJGUʹ͍ͭͯهࡌ ໊લTIJ[ ͣ͠ J04ΤϯδχΞJOԬ !TU[O
4XJGU$PODVSSFODZ w 4XJGUͰొͨ͠ݴޠػೳ w ඇಉظॲཧΛಉظॲཧͱಉ͡Α͏ͳܗͰѻ͑Δ "TZODBXBJU w ෳͷඇಉظॲཧΛߏԽͯ͠ಉ࣌ฒྻʹ࣮ߦͰ͖Δ 4USVDUVSFE$PODVSSFODZ
w ϚϧνεϨουؒͰͷσʔλڝ߹Λ͛Δ "DUPS
4XJGU$PODVSSFODZͷͭͷجຊػೳ w "TZODBXBJU w 4USVDUVSFEDPODVSSFODZ w "DUPS
"TZODBXBJU "TZODBXBJU
"TZODBXBJUͱʁ w ಉ࣌ฒߦॲཧͷϒϩοΫΛߏங͢Δ w ϒϩοΫ෦ͰॲཧΛதஅͯ͠ผͷඇಉظॲཧΛݺͼग़͢͜ͱ ͕Ͱ͖Δ w ͦΕ·Ͱͷ࣮ߦεϨουΛҰख์͠ɺͦͷεϨουଞͷ ॲཧΛ࣮ߦͰ͖Δ w
ݺͼग़ͨ͠ඇಉظॲཧͷ݁ՌΛػ͔ͯ͠ΒॲཧΛ࠶։͢Δ "TZODBXBJU"TZODBXBJUͱʁ
BTZOD ݺͼग़͠ ਤͰݟΔ"TZODBXBJU "TZODBXBJU εϨου
BTZOD BXBJU BTZOD ݁ՌΛػ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
ଞͷॲཧΛ࣮ߦͰ͖Δ BTZOD BXBJU தஅ BTZOD ݁ՌΛػ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
BTZOD BTZOD BXBJU ݁ՌΛऔಘ BTZOD ࠶։ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
࠶։લͱಉ͡εϨουͱݶΒͳ͍ BTZOD BXBJU BTZOD 㱠 ࠶։ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU ίʔϧόοΫܗࣜ
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ίʔυͰݟΔ"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
4USVDUVSFE DPODVSSFODZ 4USVDUVSFEDPODVSSFODZ
5BTL w 4XJGU$PODVSSFODZͷॲཧͷجຊ୯Ґ w 5BTL୯ҐͰ࣮ߦঢ়گؔ࿈σʔλΛཧ ϩʔΧϧมɺΩϟϯηϧॲཧɺBTZODίʔυͷ։࢝தஅͳͲ BTZOD BXBJU BTZOD
5BTL BTZOD BXBJU BTZOD 5BTL BTZOD BXBJU BTZOD 5BTL 4USVDUVSFEDPODVSSFODZ5BTL
4USVDUVSFEDPODVSSFODZͱʁ w BTZODBXBJUΛͬͯෳͷॲཧΛಉ࣌ฒྻʹ࣮ߦ͢Δ w 5BTLؒͰ֊ߏΛߏஙͯ͠ɺඇಉظॲཧͷػΩϟϯη ϧॲཧͳͲΛ͜ͷ֊Ͱͯ݁ͤ͢͞Δ BTZOD 5BTL BTZOD 5BTL
5BTL 4USVDUVSFEDPODVSSFODZ4USVDUVSFEDPODVSSFODZͱʁ
BTZODMFU 63-4FTTJPOEBUBϝιου IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOGPVOEBUJPOVSMTFTTJPOEBUB 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU BTZODMFUͷӈลʹBXBJUΛ͚ͳ͍߹݁ՌΛػ͠ͳ͍ BXBJU 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU USZBXBJUͰ݁ՌΛػ 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU BTZODMFUͷݺͼग़͠ݩλεΫ BTZODMFU͔Β࡞͞ΕͨλεΫࢠλεΫ ࢠλεΫ͕શ෦ྃ͢Δ·ͰλεΫྃ͠ͳ͍ 4USVDUVSFEDPODVSSFODZBTZODMFU λεΫΛΩϟϯηϧ͢ΔͱࢠλεΫΩϟϯηϧঢ়ଶʹͳΔ ʜͳͲ
֎ଆͷ5BTL͔Βಠཱͨ͠5BTLΛ࡞ 6OTUSVDUVSFEDPODVSSFODZ w पΓͷ5BTL͔Βಠཱͨ͠5BTLΛੜ͢Δ w ݁ՌͷػΩϟϯηϧखಈͰ࣮ߦ͢Δඞཁ͕͋Δ w 5BTLJOJUͱ5BTLEFUBDIFE͕͋Δ ಠཱͷ߹͍͕ҟͳΔ BTZOD
5BTL BTZOD 5BTL 5BTL 4USVDUVSFEDPODVSSFODZ6OTUSVDUVSFEDPODVSSFODZ
"DUPS "DUPS
"DUPSͱʁ w Ұʹͭͷ5BTLͷΈ͕෦ঢ়ଶΛૢ࡞Ͱ͖ΔΑ͏ʹͯ͠ɺෳε Ϩου͔Βͷಉ࣌ಡΈॻ͖ʹΑΔσʔλڝ߹Λ͙ BTZOD 5BTL BDUPS 5BTL 5BTL BTZOD
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 "DUPS w "DUPSؒͷભҠʹίετ͕͔͔Δ "DUPSҙ 💸
7JFX.BJO"DUPS BDUPS .BJO"DUPS 7JFX 7JFX.PEFM ❌ w 7JFX.PEFMΛBDUPSʹ͢Δͱ"DUPSؒͰͷεΠον͕ൃੜ͢Δ "DUPSҙ 💸
7JFX.PEFMΛ.BJO"DUPSʹ͢Δ w ಉ͡"DUPSͷॲཧʹͳΔ !.BJO"DUPSDMBTT .BJO"DUPS 7JFX 7JFX.PEFM ⭕ "DUPSҙ 🪙
4XJGU$PODVSSFODZ w "TZODBXBJU w 4USVDUVSFEDPODVSSFODZ w "DUPS
͋Γ͕ͱ͏͍͟͝·ͨ͠
ೖʹ͓͢͢Ί88%$ηογϣϯ w 4XJGU$PODVSSFODZղઆηογϣϯ .FFUBTZODBXBJUJO4XJGU🌟Ұ൪࠷ॳʹݟΔͷʹ͓͢͢Ί &YQMPSFTUSVDUVSFEDPODVSSFODZJO4XJGU 1SPUFDUNVUBCMFTUBUFXJUI4XJGUBDUPST w
ΑΓ෦ͷΈΛΔηογϣϯ 4XJGUDPODVSSFODZ#FIJOEUIFTDFOFT w ҰॹʹαϯϓϧΛϦϑΝΫλϦϯά͠ͳ͕ΒֶΔηογϣϯ 4XJGUDPODVSSFODZ6QEBUFBTBNQMFBQQ🌟طଘίʔυ͔ΒͷมΛҰาҰาֶΔ w ଞͷ'SBNFXPSLͱͷ࿈ܞํ๏ΛΔηογϣϯ #SJOH$PSF%BUBDPODVSSFODZUP4XJGUBOE4XJGU6* %JTDPWFSDPODVSSFODZJO4XJGU6* .BLFCMB[JOHGBTUMJTUTBOEDPMMFDUJPOWJFXT 6**NBHFͷ/FX"1*