シコウノキロクスマートフォン用の表示で見るシコウノキロクアラサー男が自由を手に入れるまでの思考と試行の記録。11章|並行処理とネットワークPython・WebPythonの入門書として各所でオススメされている入門Python3。shikouno.hatenablog.com前半7章までで基本をおさらいし、後半8章からは他分野で活用できそうなちょっとした応用編がオールインワン。第4版の次に読むとちょうどいいレベル感。その際、初めて知る箇所や曖昧でいつも検索する箇所を後で見返せるようにメモしておこうかと。そのため、このメモは僕の知識的偏りから生み出されたものであることを最初にお断りしておきます。気になった方は書籍を購入してください。Pythonと多言語の比較は面白いので必見!著者の冗談も随所に入っていて、面白くていい本です。英語版はPDFが無料で公開されています。Python後半8章からは色んな分野に渡る知識が書いてあるため、広く浅くの内容になっています。大まかな概要を掴んだり、検索時に活用するワードのピックアップという読み方・メモり方になる予定。スレッド処理を行う際にボトルネックになるのは、「I/Oバウンド」「CPUバウンド」どちらかである。同期的なのは1列に並んで処理され、よく見るasync非同期的なのはタスクがそれぞれ独立して処理される。仕事をまとめて行い次の仕事に行くのがバッチ処理。キューで最も一般的なものは先入れ先出し(FIFO)。あるタスクをプロセスとして実装する場合、multiprocessingモジュールのProcessを用いている。スレッドはプロセスを更に細分化したもので、threadingモジュールのThreadを用いている。うーん、腑に落ちていないな。ググっても掴めなかったので、非同期処理が必要になった時に改めて学ぶことにします。asyncioイベント駆動プログラミングは、イベントループを実行し仕事を外部に割り振りる。geventとtwistedが主に取り上げられており、tornadoとgunicornはコラムに小さく取り上げられている。後者の2つは聞いたことあるんですが、前者の2つは初耳ですね。geventはコルーチン、twistedはコールバックで非同期処理を実装できる。どれ使えばいいの...となったところでasyncio。Pythonで非同期を調べると一番目にするモジュールで、上記と互換性のあるイベントループを提供しているとのこと。わからなければこれ使っておけば良さそう。キューを越えて要求/応答:処理を渡す先のタスクに確認してもらう。バックプレッシャ・スロットリング:処理の早いタスクの速度を落とす。これらを実装できるキューパッケージとしては、celery、rq、Queueなどがある。パブリッシュ/サブスクライブモデルネットワークアプリケーションはいくつかの基本パターンから成る。要求/応答(クライアント/サーバー):同期的な処理で、例としてはウェブブラウザとウェブサーバーのHTTP通信がある。プッシュ(ファンアウト):準備が整っているところへデータを送る。例としてはロードバランサーの先にあるウェブサーバー。プル(ファンイン):複数のソースからデータを受け付ける。パブサブ(パブリッシュ/サブスクライブ):パブリッシャがデータを送り出し、サブスクライバが受け取る。サブスクライバは特定タイプのデータ(トピック)だけを受け取ることもできる。パブサブシステムを作るには、Redis、ZeroMQ、RabbitMQ、pubsubhubbub、pypiでpubsubを検索(pypubsub)を活用するのが良い。Redisの紹介回数多いですね。著者がRedis推しなのでしょうか、それとも有名なのでしょうか。僕は聞いたことがなかったのですが、興味が出てきたのでいつか触ってみよう。Protocol)となっている。ローカルマシンのIPアドレスは127.0.0.1であり、名前はlocalhost。ループバックインタフェースと呼ばれる。インターネットはTCP/IPを基礎としており、ソケットを介してやりとりされている。さいごにこの章だけ他と比べて読むスピードと理解が半分になってしまうくらい難易度高い気がする。え、難しくない?僕だけ?特に並行処理はリベンジしたいですね。プログラミングの世界は日進月歩なので、本で紹介されていても既に更新されていないものがあったりします。概要は把握して検索できるワードを拾いつつ、最新のツールはネットで情報収集が大切ですね。最後までお読みいただきありがとうございます。9章|ウェブを解きほぐすPythonの入門書として各所でオススメされている入門Python3。8章|データの行き先Pythonの入門書として各所でオススメされている入門Python3。6章|オブジェクトとクラスPythonの入門書として各所でオススメされている入門Python3。5章|モジュール、パッケージ、プログラムPythonの入門書として各所でオススメされている入門Python3。4章|コード構造Pythonの入門書として各所でオススメされている入門Python3。(3)スポンサードリンクはてなブログをはじめよう!shikounoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。