本日はプロセス間、スレッド間などで値をやり取りする方法を紹介します。 使用する手法は、C言語などを触ったことある人は聞いたことある人もいるかもしれませんが 「共有メモリ (Shared Memory)」という仕組みです。 Pythonで共有メモリを実装するのに便利な「mmap」というライブラリがあるので、 本日は紹介したいと思います。 共有メモリとは ざっくりですが共有メモリとは、名前の通りPCのメモリ上の一部を複数のプロセス間で使用できるようにする仕組みです。 最初はこのくらいの理解で十分だと思います。 複数のPythonアプリ間でデータの通信ができるので便利です。 応答速度もかなり高速です。 Python mmap公式ドキュメント ソースコード 本記事では共有メモリはファイルに反映される手法を利用します。 これによりアプリ終了時に、最後の状態を維持できるので便利です。 (製造現場などの
![Python mmap 使い方 (共有メモリ操作) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/169f1b6537f4d72f0ef07c21168ce5a711ef8a8d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UHl0aG9uJTIwbW1hcCUyMCVFNCVCRCVCRiVFMyU4MSU4NCVFNiU5NiVCOSUyMCUyOCVFNSU4NSVCMSVFNiU5QyU4OSVFMyU4MyVBMSVFMyU4MyVBMiVFMyU4MyVBQSVFNiU5MyU4RCVFNCVCRCU5QyUyOSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjEyZTU5NTVhNzgzMGYzMGU1Y2MzMTIxOGViZWEyOTE%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwWXVzdWtlX1BpcGlwaSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTMyJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9N2M4MTc0ZjVjOTdhMWYzZjg2MGI4NWRlNmRkNmY0MTk%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D9f519a496e457b85942464134e403eaa)