SendSync

How does Rust know to forbid shared access across threads? The answer is in two traits:

  • Send: スレッド境界をまたいでの型Tのムーブが安全に行える場合、型TSendである。
  • Sync: スレッド境界をまたいで&Tのムーブが安全に行える場合、型TSyncである。

SendSyncunsafeなトレイトです。 あなたが新たに定義する型がSendSyncの型のみを含む場合、コンパイラはその新しい型に対してSendSyncを自動的に導出します。そうでなくても妥当であるならばSendSyncを自分自身で実装することもできます。

  • これらのトレイトは、ある型が特定のスレッドセーフの特性を持っていることを示すマーカーと考えることもできます。
  • これらは通常のトレイトと同じように、ジェネリック境界の中で利用することができます。