非同期処理

term_id: async_processing

Category: engineering_practice

Definition

非同期処理により、ソフトウェアはメインアプリケーションのインターフェースをフリーズさせたり、他のプロセスをブロックしたりすることなく、I/O操作や複雑な計算などの長時間実行されるタスクを実行できます。

Summary

メインの実行スレッドとは独立してタスクを実行し、ブロッキング操作を回避するプログラミングパラダイム。

Key Concepts

  • ノンブロッキングI/O
  • イベントループ
  • 並行性
  • スレッド

Use Cases

  • リアルタイムのビデオストリーム処理
  • 複数のAPIリクエストの同時処理
  • バックグラウンドでのモデルトレーニングジョブ

Code Example

1
2
3
4
5
6
7
import asyncio

async def fetch_data():
    await asyncio.sleep(1)
    return 'Data'

asyncio.run(fetch_data())