کتابخانه‌ی استاندارد · زمان و همروندی

استخر pool

اجرای موازی یک حلقه روی چند هسته‌ی پردازنده.

واردسازی استخر
در این صفحه
  1. روال‌ها

اگر هر دور یک حلقه مستقل از بقیه است، مثل پردازش جداگانه‌ی هر خانه‌ی یک آرایه، برای موازی دورها را بین چند نخ کارگر پخش می‌کند و تا پایان همه صبر می‌کند. بدنه‌ی حلقه یک روال با ورودی صحیح۶۴ است که شماره‌ی دور را می‌گیرد.

ترتیب اجرای دورها معلوم نیست. اگر دورها داده‌ی مشترکی را تغییر می‌دهند، از قفل یا اتمی استفاده کنید؛ نوشتن هر دور در خانه‌ی خودش امن است.

روال‌ها

تعداد پردازنده CPUCount

روال تعداد پردازنده(): صحیح۶۴
تعداد هسته‌های پردازنده؛ دست‌کم ۱.
pool-ParallelFor.salam
واردسازی استخر
واردسازی حافظه

ناپایا مربع‌ها := پوچ برگردان صحیح۶۴*

روال ریشه:
    سرچاپ استخر.تعداد پردازنده() >= ۱
    مربع‌ها = حافظه.تخصیص صفرشده(۸۰ برگردان طبیعی۶۴) برگردان صحیح۶۴*
    استخر.برای موازی(۱۰، ۴، (ای: صحیح۶۴): مربع‌ها[ای] = ای * ای پایان)
    ناپایا جمع := ۰ برگردان صحیح۶۴
    تکرار ۱۰ در ای:
        جمع += مربع‌ها[ای]
    پایان
    سرچاپ جمع
    استخر.برای موازی خودکار(۱۰، (ای: صحیح۶۴): مربع‌ها[ای] = -ای پایان)
    سرچاپ مربع‌ها[۹]
    حافظه.آزادسازی(مربع‌ها برگردان تهی*)
پایان
خروجیtrue 285 -9

برای موازی ParallelFor

روال برای موازی(n: صحیح۶۴، workers: صحیح۶۴، body: روال(صحیح۶۴))
بدنه را برای شماره‌های صفر تا n - 1 با workers نخ اجرا می‌کند و تا پایان همه صبر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: pool-ParallelFor.salam

برای موازی خودکار ParallelForAuto

روال برای موازی خودکار(n: صحیح۶۴، body: روال(صحیح۶۴))
مثل برای موازی، با یک نخ برای هر هسته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: pool-ParallelFor.salam