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
480
そろそろ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
14
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
210
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
1.4k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
13k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
470
複雑さに立ち向かうためのコードリーディング入門
shiz
35
13k
Swift Observation
shiz
5
800
Swift Reflection
shiz
1
200
Swift Concurrency Next Step
shiz
7
7.8k
Other Decks in Programming
See All in Programming
楽しく向き合う例外対応
okutsu
0
110
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
900
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
Linux && Docker 研修/Linux && Docker training
forrep
24
4.5k
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
120
color-scheme: light dark; を完全に理解する
uhyo
3
310
GoとPHPのインターフェイスの違い
shimabox
2
190
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
560
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
840
Rails アプリ地図考 Flush Cut
makicamel
1
120
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Site-Speed That Sticks
csswizardry
4
380
Producing Creativity
orderedlist
PRO
344
39k
Agile that works and the tools we love
rasmusluckow
328
21k
Speed Design
sergeychernyshev
27
790
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Music & Morning Musume
bryan
46
6.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Faster Mobile Websites
deanohume
306
31k
Unsuck your backbone
ammeep
669
57k
A Modern Web Designer's Workflow
chriscoyier
693
190k
GitHub's CSS Performance
jonrohan
1030
460k
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*