ویژگی‌های نشانگر

‏ 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 عادی استفاده کرد.