Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hironori Sekine
PDF, PPTX
50,789 views
Pythonによる非同期プログラミング入門
Pythonによる非同期プログラミング入門
Software
◦
Read more
47
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 34
2
/ 34
3
/ 34
4
/ 34
5
/ 34
6
/ 34
7
/ 34
8
/ 34
9
/ 34
10
/ 34
11
/ 34
12
/ 34
13
/ 34
14
/ 34
15
/ 34
16
/ 34
17
/ 34
18
/ 34
19
/ 34
20
/ 34
21
/ 34
22
/ 34
23
/ 34
24
/ 34
25
/ 34
26
/ 34
27
/ 34
28
/ 34
29
/ 34
30
/ 34
31
/ 34
32
/ 34
33
/ 34
34
/ 34
Recommended
PDF
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
by
Deep Learning JP
PDF
G2o
by
Fujimoto Keisuke
PPTX
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
by
森 哲也
PDF
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
by
Deep Learning JP
PPTX
カルマンフィルタ入門
by
Yasunori Nihei
PDF
【DL輪読会】Mastering Diverse Domains through World Models
by
Deep Learning JP
PPTX
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
by
Deep Learning JP
PPTX
StyleGAN解説 CVPR2019読み会@DeNA
by
Kento Doi
PDF
BERTをブラウザで動かしたい!―MobileBERTとTensorFlow.js―
by
Shion Honda
PDF
機械学習をScrumで組織的に学習する (RSGT2022)
by
Yukio Okajima
PDF
フロー効率性とリソース効率性、再入門 #devlove #devkan
by
Itsuki Kuroda
PPTX
優れた研究論文の書き方―7つの提案
by
Masanori Kado
PDF
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
by
KnowledgeGraph
PDF
グラフデータの機械学習における特徴表現の設計と学習
by
Ichigaku Takigawa
PPTX
卒論執筆・スライド作成のポイント
by
Tsubasa Hirakawa
PDF
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
by
Satoshi Hara
PPTX
報酬設計と逆強化学習
by
Yusuke Nakata
PPTX
Sequence Level Training with Recurrent Neural Networks (関東CV勉強会 強化学習論文読み会)
by
Yoshitaka Ushiku
PPTX
MS COCO Dataset Introduction
by
Shinagawa Seitaro
PDF
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
by
Deep Learning JP
PDF
【DL輪読会】Motion Policy Networks
by
Deep Learning JP
PDF
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
by
Atsuki Yokota
PDF
Skip Connection まとめ(Neural Network)
by
Yamato OKAMOTO
PDF
『データ解析におけるプライバシー保護』勉強会 秘密計算
by
MITSUNARI Shigeo
PDF
研究分野をサーベイする
by
Takayuki Itoh
PDF
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
by
Deep Learning JP
PDF
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
by
Deep Learning JP
PDF
トピックモデルの評価指標 Perplexity とは何なのか?
by
hoxo_m
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PDF
Project Loom - 限定継続と軽量スレッド -
by
Yuichi Sakuraba
More Related Content
PDF
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
by
Deep Learning JP
PDF
G2o
by
Fujimoto Keisuke
PPTX
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
by
森 哲也
PDF
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
by
Deep Learning JP
PPTX
カルマンフィルタ入門
by
Yasunori Nihei
PDF
【DL輪読会】Mastering Diverse Domains through World Models
by
Deep Learning JP
PPTX
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
by
Deep Learning JP
PPTX
StyleGAN解説 CVPR2019読み会@DeNA
by
Kento Doi
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
by
Deep Learning JP
G2o
by
Fujimoto Keisuke
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
by
森 哲也
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
by
Deep Learning JP
カルマンフィルタ入門
by
Yasunori Nihei
【DL輪読会】Mastering Diverse Domains through World Models
by
Deep Learning JP
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
by
Deep Learning JP
StyleGAN解説 CVPR2019読み会@DeNA
by
Kento Doi
What's hot
PDF
BERTをブラウザで動かしたい!―MobileBERTとTensorFlow.js―
by
Shion Honda
PDF
機械学習をScrumで組織的に学習する (RSGT2022)
by
Yukio Okajima
PDF
フロー効率性とリソース効率性、再入門 #devlove #devkan
by
Itsuki Kuroda
PPTX
優れた研究論文の書き方―7つの提案
by
Masanori Kado
PDF
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
by
KnowledgeGraph
PDF
グラフデータの機械学習における特徴表現の設計と学習
by
Ichigaku Takigawa
PPTX
卒論執筆・スライド作成のポイント
by
Tsubasa Hirakawa
PDF
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
by
Satoshi Hara
PPTX
報酬設計と逆強化学習
by
Yusuke Nakata
PPTX
Sequence Level Training with Recurrent Neural Networks (関東CV勉強会 強化学習論文読み会)
by
Yoshitaka Ushiku
PPTX
MS COCO Dataset Introduction
by
Shinagawa Seitaro
PDF
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
by
Deep Learning JP
PDF
【DL輪読会】Motion Policy Networks
by
Deep Learning JP
PDF
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
by
Atsuki Yokota
PDF
Skip Connection まとめ(Neural Network)
by
Yamato OKAMOTO
PDF
『データ解析におけるプライバシー保護』勉強会 秘密計算
by
MITSUNARI Shigeo
PDF
研究分野をサーベイする
by
Takayuki Itoh
PDF
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
by
Deep Learning JP
PDF
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
by
Deep Learning JP
PDF
トピックモデルの評価指標 Perplexity とは何なのか?
by
hoxo_m
BERTをブラウザで動かしたい!―MobileBERTとTensorFlow.js―
by
Shion Honda
機械学習をScrumで組織的に学習する (RSGT2022)
by
Yukio Okajima
フロー効率性とリソース効率性、再入門 #devlove #devkan
by
Itsuki Kuroda
優れた研究論文の書き方―7つの提案
by
Masanori Kado
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
by
KnowledgeGraph
グラフデータの機械学習における特徴表現の設計と学習
by
Ichigaku Takigawa
卒論執筆・スライド作成のポイント
by
Tsubasa Hirakawa
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
by
Satoshi Hara
報酬設計と逆強化学習
by
Yusuke Nakata
Sequence Level Training with Recurrent Neural Networks (関東CV勉強会 強化学習論文読み会)
by
Yoshitaka Ushiku
MS COCO Dataset Introduction
by
Shinagawa Seitaro
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
by
Deep Learning JP
【DL輪読会】Motion Policy Networks
by
Deep Learning JP
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
by
Atsuki Yokota
Skip Connection まとめ(Neural Network)
by
Yamato OKAMOTO
『データ解析におけるプライバシー保護』勉強会 秘密計算
by
MITSUNARI Shigeo
研究分野をサーベイする
by
Takayuki Itoh
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
by
Deep Learning JP
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
by
Deep Learning JP
トピックモデルの評価指標 Perplexity とは何なのか?
by
hoxo_m
Similar to Pythonによる非同期プログラミング入門
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PDF
Project Loom - 限定継続と軽量スレッド -
by
Yuichi Sakuraba
PPTX
非同期処理の基礎
by
信之 岩永
PDF
async/await不要論
by
bleis tift
PDF
Node.js入門
by
俊夫 森
PPT
Aio
by
Masaaki HIROSE
PDF
async/await の向こう側 PyCon Kyushu 2022
by
Atsushi Odagiri
PDF
【学習メモ#11th】12ステップで作る組込みOS自作入門
by
sandai
PDF
Pythonの非同期処理を始める前に
by
koralle
PDF
10080分でPythonからIP Messeneger
by
Satoshi Yamada
PDF
[Basic 8] プロセスとスレッド / 入出力 / シェル
by
Yuto Takei
PDF
C21 SQL Server のスレッド管理 by 古賀啓一郎
by
Insight Technology, Inc.
KEY
難しそうで難しくない少し難しいClojure並行処理
by
Naoyuki Kakuda
PDF
Unix architecture
by
raw-hide
PDF
DATUM STUDIO PyCon2016 Turorial
by
Tatsuya Tojima
PDF
dofilewrite and vn_write
by
kusabanachi
PDF
C-langage
by
Hiramatsu Ryosuke
PDF
18166746-NeverBlock-RubyKaigi2009
by
Muhammad Ali
PDF
LLdeade Python Language Update
by
Atsushi Shibata
PPTX
Too difficult concurrent processing
by
鈴木 セシル
できる!並列・並行プログラミング
by
Preferred Networks
Project Loom - 限定継続と軽量スレッド -
by
Yuichi Sakuraba
非同期処理の基礎
by
信之 岩永
async/await不要論
by
bleis tift
Node.js入門
by
俊夫 森
Aio
by
Masaaki HIROSE
async/await の向こう側 PyCon Kyushu 2022
by
Atsushi Odagiri
【学習メモ#11th】12ステップで作る組込みOS自作入門
by
sandai
Pythonの非同期処理を始める前に
by
koralle
10080分でPythonからIP Messeneger
by
Satoshi Yamada
[Basic 8] プロセスとスレッド / 入出力 / シェル
by
Yuto Takei
C21 SQL Server のスレッド管理 by 古賀啓一郎
by
Insight Technology, Inc.
難しそうで難しくない少し難しいClojure並行処理
by
Naoyuki Kakuda
Unix architecture
by
raw-hide
DATUM STUDIO PyCon2016 Turorial
by
Tatsuya Tojima
dofilewrite and vn_write
by
kusabanachi
C-langage
by
Hiramatsu Ryosuke
18166746-NeverBlock-RubyKaigi2009
by
Muhammad Ali
LLdeade Python Language Update
by
Atsushi Shibata
Too difficult concurrent processing
by
鈴木 セシル
Pythonによる非同期プログラミング入門
1.
Pythonによる 非同期プログラミング入門 関根裕紀
2.
自己紹介 • 関根裕紀(せきね
ひろのり) • アライドアーキテクツ株式会社 • ソフトウェア・エンジニア • Twitter(@checkpoint )
3.
経歴 • 前職まで
• RSSリーダー、SNS、WebMail、写真共有サービスなど • 現在(アライドアーキテクツ) • Webアプリケーション開発全般を担当 • http://showcase.cool/ • 発表 • http://ll.jus.or.jp/2014/archives/slides
4.
アジェンダ • 同期I/O、非同期I/O
• Pythonの非同期フレームワーク • asyncio概要、サンプル
5.
同期I/O コンピュータ内部のCPUと周辺装置のデータ入出力(I/O)において、データの 送受信の完了を待ってから他の処理を開始する方式。
! 同期I/Oでは、I/O処理が始まると他の処理はいったん停止し、送受信が完了 してから続きの処理を開始・継続する。これに対し、I/O処理と並列に、送受 信が完了していなくても可能な処理を進める方式を非同期I/O(ノンブロッキ ングI/O)という ! IT用語辞典 ( http://e-words.jp/w/E5908CE69C9FI2FO.html ) より
6.
コーヒーショップ(同期版) • 注文する
• 出来るのを待つ • 受け取る
7.
非同期I/O コンピュータ内部のCPUと周辺装置のデータ入出力(I/O)において、データの 送受信の完了を待たずに他の処理を開始する方式。並列処理の一種。
! 非同期I/Oでは、I/O処理と並列に、データの送受信が完了していなくても可 能な処理を進め、送受信が済まないと進められない処理にたどりついた場合 に、そこで送受信の完了を待つ。これに対し、正常に送受信が完了したかど うかの結果を待ち、送受信処理に完了してから残りの処理を行う方式を同期I/ O(ブロッキングI/O)という。 IT用語辞典 ( http://e-words.jp/w/E5908CE69C9FI2FO.html ) より
8.
コーヒーショップ(非同期版) • 注文する
• 別の所で待つ • 準備が出来たら呼ばれて、受け取る
9.
比較 同期版 非同期版高速化
10.
どういう場合に使う? • IOの待ち時間が長い処理
• コネクションの取得 • 外部サービスの呼び出し • APIの呼び出し • 逆にCPUバウンドなプログラムには有効ではない
11.
Pythonの非同期処理の選択肢 • twisted
• tornado • gevent • thread、multi process、and etc…
12.
Twisted • イベント駆動型のネットワークプログラミングフ
レームワーク • TCP、UDP、SSL/TSL、などのサポート • 多数のプロトコルに対応(HTTP、SSH、FTP) • Deferred(遅延評価オブジェクト) • 外部イベントループとの結合
13.
Tornado • Facebook(
FriendFeed )が開発 • オープンソース • Webフレームワーク + 非同期通信ライブラリ • 非常に高速(先日のLTでも発表があり) • 現在でもよく使われている
14.
選択肢が多い • 選択肢が多いのは素晴らしい
• どれがスタンダードなのかわからない • APIのスタイルが違う • 結合しているイベントループの種類が違う
15.
asyncio • PEP
3156 ( http://legacy.python.org/dev/peps/pep-3156/ ) • Python3.4から標準ライブラリ • 非同期i/oの共通のコンポーネントを提供 • Windows, Linuxをサポート • 既存のフレームワークを置き換えるのではなく、 補完する
16.
アーキテクチャ • Event
loop • Corutines • Future、Task
17.
Event loop •
プラットフォームに最適なIO処理を提供
18.
イベントループの取得 • asyncio.get_event_loop()
• asyncio.set_event_loop(loop) • asyncio.new_event_loop()
19.
イベントループの実行、停止 • loop.run_forever()
• loop.run_until_complete(future) • loop.is_running() • loop.stop() • loop.is_closed()
20.
コールバック • loop.call_soon(callback,*args)
• loop.call_later(delay, callback, *args) • loop.call_at(when, callback, *args) • loop.time()
21.
ファイルディスクリプタ • loop.add_reader(fd,
callback, *args) • loop.remove_reader(fd) • loop.add_writer(fd, callback, *args) • loop.remove_writer(fd)
22.
UNIX シグナル •
loop.add_signal_handler(signum, callback, *args) • loop.remove_signal_handler(sig)
23.
他にもたくさん • http://docs.python.jp/3/library/asyncio.html
24.
Hello World import
asyncio ! def print_and_repeat(loop): print('Hello World') loop.call_later(2, print_and_repeat, loop) ! loop = asyncio.get_event_loop() loop.call_soon(print_and_repeat, loop) loop.run_forever() http://docs.python.jp/3/library/asyncio-eventloop.html#example-hello-world-callback
25.
Signal Sample import
asyncio import functools import os import signal ! def ask_exit(signame): print("got signal %s: exit" % signame) loop.stop() ! loop = asyncio.get_event_loop() for signame in ('SIGINT', 'SIGTERM'): loop.add_signal_handler(getattr(signal, signame), functools.partial(ask_exit, signame)) ! print("Event loop running forever, press CTRL+c to interrupt.") print("pid %s: send SIGINT or SIGTERM to exit." % os.getpid()) loop.run_forever() http://docs.python.jp/3/library/asyncio-eventloop.html#example-set-signal-handlers-for-sigint-and-sigterm
26.
Coroutines • generator
• @asyncio.coroutine • 任意の箇所で一旦処理を中止し、処理を再開
27.
Coroutine Sample import
asyncio ! @asyncio.coroutine def greet_every_two_seconds(): while True: print('Hello World') yield from asyncio.sleep(2) ! loop = asyncio.get_event_loop() loop.run_until_complete(greet_every_two_seconds()) http://docs.python.jp/3/library/asyncio-task.html#example-hello-world-coroutine
28.
Chain Coroutines import
asyncio ! @asyncio.coroutine def greet_every_two_seconds(): while True: print('Hello World') yield from asyncio.sleep(2) ! loop = asyncio.get_event_loop() loop.run_until_complete(greet_every_two_seconds()) http://docs.python.jp/3/library/asyncio-task.html
29.
Future • 呼び出し可能オブジェクトの非同期実行をカプ
セル化 • future.add_done_callback() => 登録 • future.result() => 結果の取得
30.
実際はどう使う? • aiohttp(
https://github.com/KeepSafe/aiohttp )
31.
aiohttp @asyncio.coroutine def
request(method, url, *, params=None, data=None, headers=None, cookies=None, files=None, auth=None, allow_redirects=True, max_redirects=10, encoding='utf-8', version=aiohttp.HttpVersion11, compress=None, chunked=None, expect100=False, connector=None, loop=None, read_until_eof=True, request_class=None, response_class=None):
32.
aiohttp response =
yield from aiohttp.request('GET', 'http://python.org') body = yield from response.read() print(body)
33.
まとめ • まずはEventloop、Coroutine、Futureを覚える
• スレッドなどに比べて概念が難しい(個人的に) • 徐々にasyncioをベースにした実装が出てくるはず。
34.
ご静聴ありがとうございました。
Download
[8]
ページ先頭
©2009-2025
Movatter.jp