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
200
Swift 並行性(Concurrency)を読み解く - WWDC21
Swift Concurrency関連プレゼンテーションガイド
notoroid
August 04, 2021
Tweet
Share
More Decks by notoroid
See All by notoroid
WeatherKit iOS18 update - お天気の更新
notoroid
0
37
AppIntentsの用途 - AppleのGPT元年
notoroid
1
120
Privacy manifests - Appleと開発コミュニティ
notoroid
1
180
とっさのAutoLayout - Rewind autolayout
notoroid
0
71
UVC(USB video class)と マルチプラットフォーム - UVC support by Apple multiplatform
notoroid
0
280
SwiftUIむけに 整理された状態監視 Observation
notoroid
0
650
よせあつめSwift - Swift5.9
notoroid
1
620
Transferable - SwiftUI ドキュメントアプリ
notoroid
2
390
整理されたSwift言語仕様 - Swift 5.7 any/some
notoroid
1
960
Other Decks in Programming
See All in Programming
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
役立つログに取り組もう
irof
28
9.6k
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
340
受け取る人から提供する人になるということ
little_rubyist
0
250
subpath importsで始めるモック生活
10tera
0
310
Jakarta EE meets AI
ivargrimstad
0
130
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
Contemporary Test Cases
maaretp
0
140
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
480
CSC509 Lecture 09
javiergs
PRO
0
140
CSC509 Lecture 12
javiergs
PRO
0
160
最新TCAキャッチアップ
0si43
0
190
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
BBQ
matthewcrist
85
9.3k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
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Ͱલʹෆ ʹίϯγϡʔϚʔιϑτʹಋೖ͞Εͨಉ ظॲཧͷه๏ʹҰఆͷܾண͕͍ͭͨͷͰ