Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Flutter Thread Merge - Flutter Tokyo #11
Search
JaiChangPark
November 26, 2025
Technology
590
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
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
210
flutter_gemini_live Bringing Gemini Live to Flutter @FlutterKaigi2026
itsmedreamwalker
0
54
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
260
BWAI 2026 Cloud x Pangyo Gemma 4 핸즈온 - 박제창
itsmedreamwalker
0
44
BWAI 2026 GDG KR x MUG KR Session 1 Gemma4 소개 박제창
itsmedreamwalker
0
110
Build Your Own AI Office with Gemma4, 박제창 , BWAI 2026 Seoul
itsmedreamwalker
0
82
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
630
DevFest Daegu 2025 - Flutter Agent App A to Z with Gemini, GenUI, A2UI 박제창
itsmedreamwalker
0
180
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
440
Other Decks in Technology
See All in Technology
業務でAWSをあまり使っていない私が、AWSへのモチベを保つ方法
smt7174
0
180
AIコーディングはじめました
miso
0
160
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
140
AI Agent 時代のデータ基盤: ClickHouse で実現する 超高速分析とコスト削減の両立
jozono
0
220
HQ駆動開発で最高のAI-Contextを作ろう
sansantech
PRO
1
120
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
530
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
3.2k
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
190
Sizing, Benchmarking and Performance Tuning Apache Flink Clusters
rmetzger
0
140
[General] 개발자로 해외 기업에서 일하기
skydoves
1
310
AI時代における医療情報システムのセキュリティ / Security of Healthcare IT Systems in the AI Era
henryofficial
0
110
属人化したISMS運用をGitHubとAIで仕組み化した1年間の記録
sioncojp
2
1.4k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
エンジニアに許された特別な時間の終わり
watany
109
250k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
Optimizing for Happiness
mojombo
378
71k
A Modern Web Designer's Workflow
chriscoyier
699
190k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
350
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
The agentic SEO stack - context over prompts
schlessera
0
1k
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!