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)を読み解く - WWDC21
Search
notoroid
August 04, 2021
Programming
2
210
Swift 並行性(Concurrency)を読み解く - WWDC21
Swift Concurrency関連プレゼンテーションガイド
notoroid
August 04, 2021
Tweet
Share
More Decks by notoroid
See All by notoroid
Xcodeショートカット 2025年版
notoroid
0
30
ZIPでくれ - Apple謹製 geocoding/ reverse geocoding
notoroid
0
52
WeatherKit iOS18 update - お天気の更新
notoroid
0
49
AppIntentsの用途 - AppleのGPT元年
notoroid
1
150
Privacy manifests - Appleと開発コミュニティ
notoroid
1
210
とっさのAutoLayout - Rewind autolayout
notoroid
0
96
UVC(USB video class)と マルチプラットフォーム - UVC support by Apple multiplatform
notoroid
0
330
SwiftUIむけに 整理された状態監視 Observation
notoroid
0
730
よせあつめSwift - Swift5.9
notoroid
1
660
Other Decks in Programming
See All in Programming
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
130
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
110
Open source software: how to live long and go far
gaelvaroquaux
0
630
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
Conform を推す - Advocating for Conform
mizoguchicoji
3
690
Introduction to kotlinx.rpc
arawn
0
700
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
120
Lottieアニメーションをカスタマイズしてみた
tahia910
0
130
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
740
sappoRo.R #12 初心者セッション
kosugitti
0
250
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
120
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Practical Orchestrator
shlominoach
186
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Thoughts on Productivity
jonyablonski
69
4.5k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Transcript
4XJGUฒߦੑ $PODVSSFODZ ΛಡΈղ͘ 88%$ 4XJGU$PODVSSFODZؔ࿈ϓϨθϯΨΠυ
ࢀߟࢿྉ"QQMF%FWFMPQFS IUUQTBQQTBQQMFDPNKQBQQBQQMFEFWFMPQFSJE 88%$༰ॱ࣍ຊޠରԠ͞Ε͍ͯ͘
88%$͔Βϲ݄ɻ 4XJGUݴޠͷۄͷBXBJUBTZOD BDUPS͕ൃද͞Ε·ͨ͠
͕ɺϲ݄ܦͬͯ৽ ༷ʹશ͘׳Εͳ͍ʂ
88%$ͷؔ࿈͢ΔϓϨθϯ ࢿྉΛͱ͓ͨ͠ͷͰհɻ
88%$ͰԿ͕͓͖ͨͷ͔ 4XJGU ͍ͭʹBTZODBXBJU͕ಋೖ͞Ε·ͨ͠ɻBTZODBXBJU ͚ͩͰͳ͘ɺBDUPS!.BJO"DUPS͕ಋೖɻ
88%$ͰԿ͕͓͖ͨͷ͔ 4XJGU ͍ͭʹBTZODBXBJU͕ಋೖ͞Ε·ͨ͠ɻBTZODBXBJU ͚ͩͰͳ͘ɺBDUPS!.BJO"DUPS͕ಋೖɻ BTZODBXBJUʹ͍ͭͯ88%$ҎલΑΓݴޠ༷ ͱͯ͠ఏҊ͞Ε͓ͯΓɺ৽ٕज़ʹΊ͟ͱ͍ෳͷ։ൃ ऀ༷ΑΓهࣄ͕ެ։͞Ε͍ͯΔɻ
1SPQPTBMʹࡌ ͍ͬͯͳ͍4XJGU ͷBTZODBXBJU ͕ૉΒ͍͠ͱࢥ ͏ཧతഎܠ IUUQTRJJUBDPN LPIFSJUFNT CFBFD
ಡΈͱͯ͠໘ന͍ɺ ໘ന͍͕ผʹٕज़ͰΩϟοΩϟͨ͠ ͍Θ͚Ͱͳ͍ͱ͍͏ͷ͕ຊԻɻ
&$."4DSJQUͰઌΜͯ͡ಋೖ͞Εͯ ͍ͨػೳ͕4XJGUʹ͖ͬͯͨ͋Γ͕ ͕ͨΔؾແ͔ͬͨΓ͢Δɻ
৽͍͠ݴޠ༷͕ಋೖ͢Δ ඞཁ͕͋Δ ඞવੑ ʹೲಘ͠ɺ ଉΛు༷͘ʹࣗવʹར༻Ͱ͖Δ͜ͱ͕ཧͰ
ͱ͍͏ཧ೦ͷͱɺBTZODBXBJUBDUPSपΓ͕ಋ ೖ͞Εͨࡍͷ4XJGUݴޠʹ͓͚ΔฒߦੑΛѻ͏্Ͱ ͷϨΪϡϨʔγϣϯมߋʹ͍ͭͯղܾʹઆ໌͢Δɻ
88%$ͷ 4XJGUʹ͓͚Δฒߦੑ ֓ཁ
BTZODBXBJU w "TZODඇಉظΛࣔ͢म০ࢠͰ w BTZOD͕༩͞ΕΔͱBXBJUΛͬͯॲཧऴྃ·Ͱडঢ়ଶʹ͢ Δ͜ͱΛӅṭͰ͖Δ w NBD04J1IPOFͰͷϚϧνεϨου্ͷॲཧ͕࣮ࡍͲ͏ͳͬͯ ͍Δ͔4XJGUίʔυهड़ऀଆ͔ΒӅṭ͞Ε͍ͯΔ
BDUPS w ෳͷεϨου͔Βݺͼग़͞ΕΔΛอޢ͢ΔΈΛDMBTTϥ ΠΫͳఆٛͰهड़Ͱ͖Δ w ϓϩύςΟෳ͔ΒͷมߋͷࡍʹBXBJUͰडՄೳ w ϝιουΛఆٛ͢Δͱͦͷϝιου͕ݺͼऴΘΔ·Ͱ֎෦͔Βม ߋ͕ՃΘΒͳ͍ w
ͷڝ߹Λ͚͞ΔͨΊ෦తʹ4JHOBMɺ4FNBQIPSFͳͲΞΫ ηε੍ޚػೳΛ͍ͬͯΔ͕4XJGUίʔυهड़ऀଆ͔ΒӅṭ͞ Ε͍ͯΔɻ
ߏԽ͞Εͨಉظॲཧ w "TZODBXBJUΛ֊తʹݺͼग़͠ͱݺͼग़͠֊Λߟྀͨ͠ಉظ ॲཧΛ࣮ݱͰ͖Δ w 4XJGUΑΓલಠཱͨ͠ಉظॲཧΛ·ͱΊΔͳͲ࣮ͯ͠ݱͰ ͖ͨ͜ͱ͕4XJGU͔ΒσϑΥϧτͷಉظॲཧѻ͍ͱͳͬͨ w ͜Ε·ͰͷಉظॲཧΦϓγϣϯѻ͍ͱͳΓಠཱͨ͠ಉظॲཧͱ ໋໊
w ಠཱͨ͠ಉظॲཧΦϓγϣϯѻ͍ʹͳͬͨɺBTZODBXBJU ΑΓ໌ࣔతʹݺͼग़͠ඞཁ
!.BJO"DUPS w "DUPSෳΞΫηε͕͋ͬͨ߹ͷΛอޢ͢ΔΈΛఏڙ ͢Δ͚͕ͩͩͬͨ w !.BJO"DUPSडޙʹඞͣϝΠϯεϨου͔Βݺͼग़͞ΕΔอ ূ͢ΔͨΊͷΈ w 4XJGU"UUSJCVUFTͳͷͰ4XJGUͷ༷͔Βएׯ֎ΕΔ w
4%,ͰϝΠϯεϨουPSϝΠϯεϨουҎ֎ݺͼग़͔͠໌ࣔͰ ͖͍ͯͳ͔ͬͨͷ ؔɺΫϥεͷϓϩύςΟͳͲ ͕໌ࣔతʹ ͳͬͨ
తʹ͍͏ͱʜ w ৽͍͠ϘΩϟϒϥϦʔͱͯ͠BTZODBXBJUΛಋೖ͢Δ͜ͱͰॲཧ ͪͷهड़Λ͘هड़Ͱ͖ΔΑ͏ʹͳͬͨɻͨͩ͠ඇಉظʹͨ͠ࡍʹى ͖Δτϥϒϧίʔυهड़ऀଆͷͰ͋Δ͜ͱมԽແ͠ w ฒྻಉظͷฒྻੑͱߏԽ͞ΕͨฒྻॲཧʹΑΓฒྻॲཧʹίʔυత ͳॊೈੑ͕ੜ·Ε͍ͯΔɻͦΕΛ࣮ݱ͢ΔͨΊ࣮ݱ͢ΔͨΊBTZOD BXBJUͰεϨουΛίʔυهड़ऀ͔ΒӅṭ͍ͯ͠ΔΑ͏ͳͷ w
6*ύʔπͳͲϝΠϯεϨουݺͼग़͠Λอূ͢ΔͨΊͷهड़ͱͯ͠ !.BJO"DUPS͕Ճ͞Εͨɻίʔυهड़ऀݺͼग़͠ݩͷεϨουʹ ҙΛ͚Δඞཁ͕͕͋ͬͨݴޠϨϕϧͰ҆શͳݺͼग़͕͠อূ͞Ε ͨ
ϓϨθϯςʔγϣϯհ
w .FFUBTZODBXBJUJO4XJGU w .FFU"TZOD4FRVFODF w &YQMPSFTUSVDUVSFE DPODVSSFODZJO4XJGU w 1SPUFDUNVUBCMFTUBUFXJUI 4XJGUBDUPST
w %JTDPWFSDPODVSSFODZJO 4XJGU6* ϓϨθϯςʔγϣϯհ
.FFUBTZODBXBJUJO 4XJGU IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BTZODΛ͏ؔͷఆٛํ ๏ͱɺBXBJUͷ͍ํʹͭ ͍ͯͷϓϨθϯςʔγϣ ϯɻ
.FFU"TZOD4FRVFODF IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BTZOD͕Ճ͞Εͨݺͼग़ ͠ΛྻԽ͢ΔͱBXBJU͠ ͨࡍʹฒߦͯ͠ݺͼग़͞ ΕΔ͜ͱʹ͍ͭͯͷϓϨθ ϯςʔγϣϯɻ
&YQMPSFTUSVDUVSFE DPODVSSFODZJO4XJGU IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w "TZOD͕Ճ͞Εͨݺͼग़͠ ෦ͰBXBJUΛ͏͜ͱ͕Ͱ ͖ΔΛઆ໌ͨ͠ϓϨθϯς ʔγϣϯɻ w
Τϥʔ͕͋ͬͨ߹ʹFSSPS ΛUISPXͨ͠߹ͷڍಈʹͭ ͍ͯͷݴٴ͋Γɻ w ಠཱͨ͠ඇಉظॲཧʹ͍ͭͯ ຊϓϨθϯςʔγϣϯͰઆ ໌͍ͯ͠Δɻ
1SPUFDUNVUBCMFTUBUF XJUI4XJGUBDUPST IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BDUPSͱ!.BJO"DUPSͷઆ ໌ w ༰తʹ!.BJO"DUPSΛ આ໌͢ΔͨΊͷBDUPSΛઆ
໌͢Δͱ͍ͬͨ
%JTDPWFSDPODVSSFODZJO 4XJGU6* IUUQTEFWFMPQFSBQQMFDPNWJEFPT QMBZXXED w BTZODBXBJUBDUPS͕6* पΓͷίʔσΟϯάελΠ ϧΛม͑Δ͜ͱ͔͕֬ͩ Ұ൪ԸܙΛड͚͍ͯΔͷ 4XJGU6*ͰΔ͜ͱΛࣔ͢ϓ
Ϩθϯςʔγϣϯɻ
ࡶ؍
ίϯγϡʔϚʔιϑτΣΞʹಉظॲཧ͕ಋೖ͞Ε࢛ͯੈلᶃ w 8JOEPXTͷ͜ΖϚʔέςΟϯάతʹػೳ͕Ճ͞Ε։ൃऀ ͷαϙʔτͳ͔ͬͨ w ˡ$$ ݴޠͷڥ͕ϚϧνεϨουΛߟྀ͠ͳ͍ظ͕ؒଓ͍ ͨ w ฒߦੑʹΑΔੑೳʹ͍ͭͯ+BWB7.͕αʔόʔαΠυͰূ໌͠
͍ͯͨ w ˡධՁ͞Εͨͷ+BWB4DSJQUͷϚϧνεϨουੑೳͩͬͨ w +BWB7.ݴޠͱͯ͠4DBMB͕ొ
ίϯγϡʔϚʔιϑτΣΞʹಉظॲཧ͕ಋೖ͞Ε࢛ͯੈلᶄ w ΞϓϦͰ"QQMF͕Ͱ$FOUSBM%JTQBUDI2VFVFͰCMPDLߏจͱɺ มͷΩϟϓνϟΛಋೖ w ˡίϯύΠϥʹϝεΛೖΕΔܾஅ͔Β৽ݴޠ4XJGU͕ੜ w ฒߦੑʹ͍ͭͯͷ͕ٞ׆ൃʹͳͬͨͷ/PEF+4 αʔόʔαΠ υ+BWB4DSJQU
ͷBTZODBXBJU w ˡฒߦੑΛهड़ํ๏ʹܾண͢ΔϚϧνεϨουΛѻ͏ݴޠͰͷ ಋೖݕ౼தͩͬͨ
ݸਓత4XJGUฒߦੑݟղ
4XJGUݴޠͷ$PODVSSFODZͰલʹෆ ʹίϯγϡʔϚʔιϑτʹಋೖ͞Εͨಉ ظॲཧͷه๏ʹҰఆͷܾண͕͍ͭͨͷͰ