به مبحث Concurrency در Rust خوشآمدید
زبان Rust به طور کامل از concurrency در سطح thread های سیستمعامل با استفاده از mutex ها و channel ها پشتیبانی میکند.
سیستم Rust راست نقش مهمی در تبدیل بسیاری از باگهای concurrency به باگهای زمان کامپایل ایفا میکند. این مورد اغلب بهعنوان همزمانی بیپروا ( fearless concurrency) شناخته میشود زیرا میتوانید به کامپایلر برای اطمینان از صحت در زمان اجرا (runtime) اعتماد کنید.
برنامه زمانی
با احتساب استراحتهای ۱۰ دقیقهای، این جلسه باید حدود ۳ ساعت و ۲۰ دقیقه طول بکشد. شامل موارد زیر است:
بخش | مدت زمان |
---|---|
تردها | ۳۰ دقیقه |
کانالها | ۲۰ دقیقه |
Send و Sync | ۱۵ دقیقه |
ناحیههای مشترک | ۳۰ دقیقه |
تمرینها | ۱ ساعت و ۱۰ دقیفه |
- Rust به ما اجازه میدهد تا به ابزارهای همزمانی سیستم عامل دسترسی داشته باشیم: threadها، سازوکارهای همگامسازی و غیره.
- این سیستم تایپ به ما ایمنی لازم برای concurrency بدون هیچ ویژگی خاصی میدهد.
- همان ابزارهایی که به ما در دسترسی concurrent در یک thread واحد کمک میکنند (مانند یک تابع فراخوانی شده که ممکن است یک آرگومان را تغییر دهد یا مراجعی به آن را برای خواندن بعد ذخیره کند) ما را از مشکلات multi-threading نجات میدهند.