Skip to Content
Fluent Python ―Pythonicな思考とコーディング手法
book

Fluent Python ―Pythonicな思考とコーディング手法

by Luciano Ramalho, 豊沢 聡, 桑井 博之, 梶原 玲子
October 2017
Intermediate to advanced
832 pages
13h 34m
Japanese
O'Reilly Japan, Inc.
Content preview from Fluent Python ―Pythonicな思考とコーディング手法

17章futuresを使った並行処理

スレッドを非難するのはたいてい、普通のアプリケーションプログラマならまず遭遇することもないような利用事例しか念頭にないシステムプログラマです。(中略)アプリケーションプログラマが出くわす事例の99%で知らなければならないことは、それぞれ独立した一連のスレッドを生み出し、キューにそれらの結果を集めるというシンプルなパターンくらいです。

——Michele SimionatoPython思想家ブログ投稿「Threads, processes and concurrency in Python: some thoughts」より[17-01]†1

[†1] 冒頭の概要には「マルチコアの進化(あるいは非進化)とスレッドあるいはその他の並行処理に対する(願わくば)良識的なコメント」とあります。

本章ではconcurrent.futuresライブラリに焦点を当てます。これはPython 3.2で導入されましたが、Python 2.5以降でもPyPIのfuturesパッケージから利用できます。このライブラリは前述の引用文でMichele Simionatoが説明しているパターンをカプセル化することで、ほぼ何も考えずに使えるようにしたものです。

またここでは、タスクの非同期処理オブジェクトを表現するfuturesの考え方も紹介します。この背後にある偉大なアイデアはconcurrent.futuresにとどまらず、18章で取り上げるasyncioパッケージの基盤にもなっています。

それでは、やる気が出る例から始めましょう。

17.1 3種類のウェブダウンロードスクリプト

大きな遅延を伴うネットワークI/Oを効率的に処理するには、CPUサイクルを待ち時間で無駄に費やさず、ネットワークから応答があるまでは別の処理を実行する並行処理が必要です ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Using Asyncio in Python

Using Asyncio in Python

Caleb Hattingh
Robust Python

Robust Python

Patrick Viafore

Publisher Resources

ISBN: 9784873118178Other