درس ۲۳ از ۲۵ · برنامه‌های بزرگ‌تر

کار همزمان

برنامه‌های سلام می‌توانند چند کار را هم‌زمان روی هسته‌های مختلف پردازنده انجام دهند.

در این درس
  1. spawn و join

spawn و join

spawn(روال) روال را در یک رشته‌ی اجرایی تازه شروع می‌کند و شناسه‌ی آن را برمی‌گرداند؛ join(شناسه) صبر می‌کند تا آن رشته تمام شود. روال می‌تواند بدون ورودی باشد، یا دقیقاً یک اشاره‌گر بگیرد: spawn(روال، داده).

threads.salam
ناپایا پیام := ""

روال کارگر():
    پیام = "کار در رشته‌ی دیگر انجام شد"
پایان

روال ریشه:
    ر := spawn(کارگر)
    join(ر)
    سرچاپ پیام
پایان
خروجیکار در رشته‌ی دیگر انجام شد

برای هماهنگ کردن رشته‌ها با قفل، کانال و شمارنده‌های اتمی از کتابخانه‌های sync، chan و atomic کمک بگیرید.