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
Rustは厳しいが役に立つ Part2「Rustで非同期処理!!(概要)」
Search
NearMeの技術発表資料です
PRO
September 30, 2022
Programming
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rustは厳しいが役に立つ Part2「Rustで非同期処理!!(概要)」
NearMeの技術発表資料です
PRO
September 30, 2022
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
58
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
71
LLM + 強化学習
nearme_tech
PRO
0
33
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
78
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
65
初めてのLean言語
nearme_tech
PRO
0
110
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
39
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
78
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
90
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
240
アクセシビリティから考える情報設計
high_g_engineer
0
380
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
500
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
270
スマート反転とウェブアクセシビリティ
camiha
0
210
Heart of Swift Concurrency
koher
0
930
Agents on Rails - Rails at Scale 2026
irinanazarova
0
120
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
540
The Rails Doctrine Decade
koic
2
170
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
560
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
290
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
260
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Facilitating Awesome Meetings
lara
57
7.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The agentic SEO stack - context over prompts
schlessera
0
940
Ethics towards AI in product and experience design
skipperchong
2
380
sira's awesome portfolio website redesign presentation
elsirapls
0
420
My Coaching Mixtape
mlcsv
0
320
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Spectacular Lies of Maps
axbom
PRO
1
1k
The Invisible Side of Design
smashingmag
301
52k
Skip the Path - Find Your Career Trail
mkilby
1
230
Transcript
0 Rustは厳しいが役に立つ Part2「Rustで非同期処理!!(概要)」 2022-08-05 第9回NearMe技術勉強会 Kaito Asahi
1 目次 非同期とは? 非同期について軽くまとめています 非同期処理を実現する”Tokio” Tokioというcrateを用いたコードの例
2 非同期(Asynchronous)とは? MDNからの引用では... https://developer.mozilla.org/ja/docs/Glossary/Asynchronous 非同期とは、2つ以上の事象が同時に発生したり、関連する複 数の事象が互いの完了を待たずに発生したりする概念を指し ます (前のものが完了するのを待たずに複数の関連するもの が発生することもあります)。 “
” → 日本語の通り、待たないで実行することができる!
3 非同期処理(ConcurrencyとParallelism) “プロセス”は、「実行前状態」→「計算途中状態」→「終了状態」と表すことにする (ただし、ここでは”プロセス”を”OSのプロセス”そのものではなく、抽象的な概念として言及する。 実際、Rustの非同期処理の”プロセス”では一般に”グリーンスレッド”が利用される) 1. Concurrency(並行処理) → 複数の”プロセス”を「計算途中状態」にするような処理。 →
ただし、ある時間 t では1つの”プロセス”しか実行されない(シングルタスク)。 → 同じ処理をループでおこなうときは、初めに実行された物から出力されることが一般的。 https://www.oreilly.co.jp/book s/9784873119595/ 参考:
4 非同期処理(ConcurrencyとParallelism) 2. Parallelism(並列処理) → 複数の”プロセス”を「計算途中状態」にし、さらに同時に実行状態にすることができる処理。 → ゆえに、ループ処理では順不同で結果が出力されることがある。
5 Rustで非同期処理に便利なcrate 〜Tokio〜 Tokio is an asynchronous runtime for the
Rust programming language. It provides the building blocks needed for writing networking applications. https://tokio.rs/ → TokioはRustの非同期処理ランタイムの一つで、ネットワークアプリケーションの構築を助けてくれ る! “ ”
6 Rustで非同期処理に便利なcrate 〜Tokio〜 Ex) 1から10までの数字を表示する並行処理 use futures::future; async fn print_number(i:
i32) { println!("{}", i); } #[tokio::main] async fn main() { let fn_objs = (1..(10+1)).map(|i| print_number(i) ); future::join_all(fn_objs).await; } 1 2 3 4 5 6 7 8 9 10 出力
7 Rustで非同期処理に便利なcrate 〜Tokio〜 Ex) 1から10までの数字を表示する並列処理 use futures::future; async fn print_number(i:
i32) { println!("{}", i); } #[tokio::main] async fn main() { let fn_objs = (1..(10+1)).map(|i| tokio::spawn(async move { print_number(i).await }) ); future::join_all(fn_objs).await; } 5 1 4 2 3 6 7 8 9 10 出力
8 Thank you