【 Effective Python, 2nd Edition 】スレッド ( thread ) とコルーチン ( coroutine ) を混在させながら、asyncio を利用した非同期プログラムへ段階的に移行させよう!

Tags: python , thread , coroutine , asyncio , effective

Published 2020年10月1日21:36 by T.Tsuyoshi

前回の記事 では、ブロッキング I/O ( blocking I/O ) とスレッド ( thread ) を利用して作成した TCP サーバー / クライアントプログラムを、コルーチン ( coroutine ) と asyncio を利用した非同期プログラム ( asynchronous program ) へとリファクタリング ( refactoring ) しました。 しかし既…

【 Effective Python, 2nd Edition 】ブロッキング I/O ( blocking I/O ) とスレッド ( thread ) を利用しているプログラムを、asyncio 組み込みモジュールを利用してコルーチン ( coroutine ) と非同期 I/O ( asyncronous I/O ) を利用したプログラムにリファクタリング ( refactoring ) しよう!

Tags: python , thread , coroutine , asyncio , blocking io , effective

Published 2020年9月27日22:00 by T.Tsuyoshi

さて、コルーチンを利用した fan-out、fan-in パターン実装を取り上げた記事 を読んで、「でも既存のプログラムをコルーチンを利用した非同期プログラムに移行するのは大変だ」という感想を持った方は多いようです。 Python には言語自体に非同期実行 ( asynchronous execution ) プログラムを記述するための仕様がスマートに組み込まれています。 そ…

【Python 雑談・雑学 + coding challenge】Unicode の正規化処理 ( normalization ) を利用して、diacritical marks ( 発音区別符号 ) を取り除こう! テキスト解析の前処理としても重要です!

Tags: miscellaneous , challenge , python , diacritical , unicode , normalization

Published 2020年9月24日21:35 by T.Tsuyoshi

問題 ( 制限時間: 45 分 ): 私の元にこんな内容のファイルが送られてきました (ファイル名は 'greek_str.txt' とします)。 δοκῶ μοι περὶ ὧν πυνθάνεσθε οὐκ ἀμελέτητος εἶναι. καὶ γὰρ ἐτύγχανον πρῴην εἰς ἄστυ οἴκοθεν ἀνιὼν Φαληρόθεν· τῶν οὖ…

【Python 雑談・雑学 + coding challenge】文字列中の数字を抜き出して桁区切りをつけよう! 正規表現 (regular expression ) を使うと「えっ!?」っていうくらい簡単ですょ。lookahead と negative lookahead を使います。

Tags: miscellaneous , challenge , python , regular expressions , lookahead , negative lookahead

Published 2020年9月19日21:33 by T.Tsuyoshi

問題 ( 制限時間: 40 分 ): s = 'The numbers are 1234567890 and 98' 上のような文字列があった場合、この中の数字に桁区切りをつけましょう。 この場合の出力結果は以下のようになります。 # The numbers are 1,234,567,890 and 98 注意: 文字列から数字部分を抜き…

【 Effective Python, 2nd Edition 】プログラムを並列処理 ( concurrency ) パターンへ移行するタイミングとツールを考えるシリーズ 第 6 回 - コルーチン ( coroutines ) を利用して数多くのブロッキング I/O を並列処理する fan-out、fan-in パターンを実現しよう、の巻

Tags: python , concurrency , coroutine , effective

Published 2020年9月15日9:20 by T.Tsuyoshi

第 1 回 第 2 回 第 3 回 第 4 回 第 5 回 第 3 回から前回の第 5 回にかけて、Thread、Thread と Queue の併用、ThreadPoolExecutor を利用したブロッキング I/O ( blocking I/O ) の効率的処理を検証してきましたが、数多くの並列処理をこなすためには今一つ、というのが実情でした。 しかし、高レベル…