Python

排他的論理和

Apr. 08, 2025

2つの入力のうち一方が真でもう一方が偽となるもの

続きを読む
PlaceholderThumbnail

数学

数学的思考力への扉

Mar. 25, 2025

高校数学は車の運転を覚えるようなもので、大学数学は車を設計したり作ったりするようなもの?

続きを読む
PlaceholderThumbnail

並行処理と並列処理

Python Published at April 8, 2025, 2:11 p.m. by admin@senrigan.org

concurrencyとparallelismの違いについて

並行処理 (concurrency)

  • 1CPUで擬似的にタスク同時処理
  • スレッド切り替え、スケジューリング
  • asyncio, threading
  • 使いどころ:I/O-boundな処理
  • DBアクセス、ネットワークの待ち時間
  • コンテキストスイッチ
import asyncio

async def task(n):
    await asyncio.sleep(1)
    print(2**n)

async def main():
    await asyncio.gather(*(task(i) for i in range(1,5)))

asyncio.run(main())

並列処理 (parallelism)

  • マルチコアで物理的にタスク同時処理
  • multiprocessing
  • 使いどころ:CPU-boundな処理
  • デッドロック、リソースの競合 (race condition)
from multiprocessing import Pool
def task(n):
    return 2**n

with Pool(4) as p:
    res = p.map(task, range(1,5))
    print(res)

このブログについて

第2次ベビーブーマー、✘イチ。温泉♨、登山🏔、お城🏯巡り、ChatGPTとCopilotにおんぶに抱っこな兵隊"フロ"グラマーの失敗の記録

アーカイブ

  1. January 2025