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
Flutter Thread Merge - Flutter Tokyo #11
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
JaiChangPark
November 26, 2025
Technology
480
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flutter Thread Merge - Flutter Tokyo #11
Flutter Thread Merge - Flutter Tokyo #11
Jaichangpark, 박제창
JaiChangPark
November 26, 2025
More Decks by JaiChangPark
See All by JaiChangPark
BWAI 2026 Cloud x Pangyo Gemma 4 핸즈온 - 박제창
itsmedreamwalker
0
18
BWAI 2026 GDG KR x MUG KR Session 1 Gemma4 소개 박제창
itsmedreamwalker
0
69
Build Your Own AI Office with Gemma4, 박제창 , BWAI 2026 Seoul
itsmedreamwalker
0
47
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
580
DevFest Daegu 2025 - Flutter Agent App A to Z with Gemini, GenUI, A2UI 박제창
itsmedreamwalker
0
140
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
360
Building AI Agents with Agent Develeopment Kit Go, 박제창 @DevFest Cloud x Seoul 2025
itsmedreamwalker
1
71
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
2
1.2k
Getting Started with On-Device AI in Flutter - Flutter Alliance 2025
itsmedreamwalker
0
220
Other Decks in Technology
See All in Technology
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
170
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
1
830
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
300
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
200
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
160
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
210
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
300
背中から、背中へ /paying forward to community
naitosatoshi
0
220
product engineering with qa
nealle
0
140
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
220
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
0
220
組織における AI-DLC 実践
askul
0
300
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
GitHub's CSS Performance
jonrohan
1033
470k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Building an army of robots
kneath
306
46k
4 Signs Your Business is Dying
shpigford
187
22k
How to build a perfect <img>
jonoalderson
1
5.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
270
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Transcript
Flutter Thread Merge Dart threading changes GDE Dart-Flutter, Flutter Seoul
GDG Golang Korea @jaichangpark Dreamwalker
Advances and Challenges in Foundation Agents: From Brain-Inspired Intelligence to
Evolutionary, Collaborative, and Safe Systems https://arxiv.org/pdf/2504.01990
None
• プロセスは「独立した工場」である。 • 工場は独立した建物(独立したメモリ空間)を持つ。 • 1つのプロセスが落ちても、他のプロセスには影響がない。 ◦ A工場が崩れても、隣のB工場は影響を受けない。 Process
• スレッドは「工場の中で働く従業員」である。 • プロセスには最低1つのスレッド(メインスレッド)が存在する。 ◦ 工場を動かすためには、最低1人以上の従業員が必要である。 • メモリ(Code・Data・Heap)を共有する。 ◦ 従業員は工場内の食堂・倉庫・道具を共有する。
• スレッドのエラーはプロセス全体を停止させる可能性がある。 ◦ 1人の従業員が事故を起こして火事になると、工場全体が停止する。 スレッド Thread
None
None
None
None
動作方式 • Thread A と Thread B が、同じ変数 count に同時にアクセスして更新できる。
メリット • データ共有が非常に速い。(ただ読むだけで良い) • メモリ効率が良い。 デメリット • 同時実行問題(Race Condition) ◦ 複数のスレッドが同時に同じ変数を更新すると値が壊れる。 • ロックが必要 ◦ それを防ぐために「今使っているから待て(Lock)」という制御が必要になる。ロックが複雑になる とデッドロックが発生し、アプリ全体が停止する危険がある Thread A と Thread B が、同じ変数 count に同時にアクセスして更新できる。 メモリ(Heap)を共有する。
Dart(Flutter) が採用している独特の並行処理モデルであり、名前の通り 完全に隔離(Isolate) されている。 核心特徴 • メモリを一切共有しない。 動作方式 • Isolate
A と Isolate B は、完全に独立した別人である。 • それぞれが独自のメモリ空間(Heap)を持つ。 • A から B にデータを渡す場合、メッセージ(Message Passing) を使う。 • このときデータは コピー(Copy) されて送られる。 アイソレート Isolates
メリット • 安全性が高い: メモリ共有がないため、Lock を使う必要がなく、レースコンディションがほ ぼ発生しない。 • GC(ガベージコレクション)の効率が良い • A
が忙しくて GC が走っても、B は停止せずに処理を続けられる。→ UI のカクつきを防ぎ やすい。 デメリット • データ転送コスト ◦ データをコピーして送るため、1GB の画像など巨大なデータのやり取りは遅くなる。 アイソレート Isolates
None
区分 Thread(一般的) Isolate(Dart / Flutter) メモリ 共有する(Shared Memory) 共有しない(No Shared
Memory) 通信方 法 変数に直接アクセス メッセージ通信(Port を利用) 同期 開発者が Lock を管理する(難しい) 不要(自動的に安全) 比喩 同じオフィスで机を共有して働く社員 別々の部屋にいて、電話でやり取りする社 員
• プラットフォームスレッド (Platform thread) • UIスレッド (UI thread) • ラスタースレッド
(Raster thread) • I/Oスレッド (I/O thread) Flutter uses several threads
• プラットフォーム側のメインスレッド。 • プラグインコードが実行される。 • Performance Overlay には表示されない。 プラットフォームスレッド Platform
thread
• Dart コードと Flutter フレームワークが実行されるスレッド。 • レイヤーツリーを生成し、Raster Thread に送る。 •
ブロックしないこと。 • Performance Overlay の 下段に表示。 UIスレッド UI thread
• レイヤーツリーを受け取り、GPU と連携して描画する。 • Skia / Impeller がここで動作。 • 遅い場合は多くが
Dart 側の処理の影響。 • Performance Overlay の 上段に表示。 ラスタースレッド Raster thread
• ファイル、画像デコード、ネットワークなど重い I/O を担当。 • UI / Raster をブロックしないための作業用スレッド。 •
Performance Overlay には表示されない。 I/Oスレッド I/O thread
DEMO Flutter < 3.29
final result = await applyFilterAsync(imageData: _imageBytes!); final result = applyFilterSync(imageData:
_imageBytes!);
ASYNC SYNC
None
None
https://blog.flutter.dev/whats-new-in-flutter-3-29-f90c380c2317
Platform Thread (Kotlin, Swift) UI Thread (Dart Code) Raster Thread
(C++)
問題 • 従来は、非常に簡単なプラットフォーム情報(例:バッテリー残量の取得、ファイ ル存在確認)であっても、 • UI スレッド ↔ Platform スレッド
の通信が必要であった。 0.001ms で終わる処理でも、スレッドをまたぐ必要があり、強制的に async/await を使わざるを得なかった。
Platform Thread Raster Thread Kotlin Swift Dart Code
DEMO Flutter >= 3.29
None
ASYNC SYNC
None
None
軽量タスク • Main Thread でそのまま実行する。 • 例:バッテリー確認、キャッシュ参照、簡単な計算、短時間で終わる FFI 呼び出 し。
重量タスク(> 1ms) • 必ず Isolate に送る。 • 例:ファイル I/O、画像処理、ネットワーク要求、データベース検索。
Thank You!