たとえば、一意の型によるロックを実装することは可能ですか?
ロバート・ハーベイが提供したリンクをたどって、簡単に読み上げました。すべてを理解したとか、自分が理解したと思うことを本当に理解したという高いレベルの自信があるとは言えませんが、外部の一意性と参照の不変性のすべてのポイントはロックを必要としないことです。
マルチスレッドへの最新のアプローチは、ロックを回避しようとします。なぜなら、ロックを使用するコードを作成できるのは経験豊富なプログラマーだけであり、そのコードでさえバグが発生しやすいためです。それに加えて、ロックコードは事実上テストできないという事実を追加すると、それは非常に望ましくないことを行う方法であり、ロックから解放することを目的とするソリューションは控えめに言っても有望です。
ロックを回避する方法は、メッセージを渡すことです。これには、メッセージが不変である必要があります。大体、(一見)参照不変性は、実際に不変型を構築することなく不変性を保証するのに役立つテクニックであるように見えます。また、外部の一意性は、厳密な不変性要件をローカルで緩和するのに役立つテクニックのようです
一意性タイプを使用して、スレッド間で可変データを共有できますか?
紙は明らかにそれを述べるが、私が理解から、何らかの形で(実際には、ため、オブジェクトの外部に一意のクラスタは、スレッドセーフではありませんでしたか?)唯一の外の参照がオブジェクトのそのクラスタに存在することが保証され、その手段ものそのような参照を受け取るスレッドは、他のスレッドが参照を他に持つことができないため、他のスレッドがそれらを変更することを心配することなく、参照されるオブジェクトを可変として扱うことができます。このような理論的構造をどのように実装し、実施できるかを知りたいと思います。
一意の型を使用して同期プリミティブ(ミューテックスなど)を構築することは可能ですか、またはメッセージの受け渡しは必要ですか?
繰り返しますが、私が理解していることから、外部的に一意の型と参照の不変性は、ロック、ミューテックスなどを不要にすることを意味します。メッセージの受け渡しが方法のように見えますが、それは良いことです。