ویژگیهای نشانگر
Rust چگونه میداند که دسترسی مشترک در سراسر threadها را ممنوع میکند؟ پاسخ در دو trait است:
-
Send: در صورتی که جابجاییTدر امتداد thread boundary ایمن باشد، تایپTاز جنسSendاست. -
Sync: در صورتی که جابجایی یک&Tدر سراسر یک thread boundary ایمن باشد، یک تایپTاز جنسSyncاست.
Send و Sync [ویژگیهای ناامن] هستند (../../unsafe-rust/unsafe-traits.md). کامپایلر بهطور خودکار آنها را برای تایپهای شما مشتق میکند تا زمانی که فقط دارای انواع Send و Sync باشند. شما همچنین می توانید آنها را به صورت دستی پیاده سازی کنید بهخصوص زمانی که می دانید مقدار آن معتبر است.
This slide should take about 2 minutes.
- میتوان این traitها را به عنوان نشانگرهایی در نظر گرفت که نوعی ویژگی thread-safety خاصی را دارد.
- آنها را میتوان در محدودیتهای generic به عنوان trait عادی استفاده کرد.