1

一个论坛帖子指出使用唯一性类型而不是 STM。我不明白它在说什么。例如,唯一性类型如何处理 STM 试图处理的多个线程正在更新同一变量的问题?

我查看了维基百科关于唯一性类型线性类型的文章,但仍然不清楚论坛帖子的含义。

4

1 回答 1

1

设计由多个线程同时共享和更改数据的系统是很困难的。

使并发更容易的方法包括:

  • STM——使用 STM,数据仍然可以由多个线程共享和变异,但是由于使用事务,可以检测到并发变异。
  • 唯一性类型——对于唯一性类型,最多存在一个对对象的引用。因此,根据定义,不可能同时改变相同的数据(您至少需要两个引用,每个线程一个)。
  • 不变性——完全避免并发突变的问题,只共享不可变的数据。
  • Actors ——Actors 依赖于异步消息,并序列化他们接收到的消息,从而避免并发修改。
于 2014-01-16T13:16:26.650 回答