Concurrency 我对下面描述的事务性内存的理解正确吗?

Concurrency 我对下面描述的事务性内存的理解正确吗?,concurrency,parallel-processing,transactions,transactional-memory,Concurrency,Parallel Processing,Transactions,Transactional Memory,我正在努力理解TM。我读了本的答案,并试图理解互联网上的其他一些文章。不过,我还是不太确定我是否理解正确。据我所知,在事务性内存中,线程可以并行执行事务。如果两个(或多个)线程尝试访问同一事务变量,则除一个线程外的所有线程都将中止事务并重新开始(在某个时间点,不一定立即)。不中止的更新事务变量 总之,在TM中,所有线程都是并行运行的,我们希望不会有对事务变量的任何访问重叠,如果有,我们只允许一个线程继续,而其他线程回滚并重试。对TM的这种理解正确吗?这是一个非常好的概要。细节非常复杂,可能有些事

我正在努力理解TM。我读了本的答案,并试图理解互联网上的其他一些文章。不过,我还是不太确定我是否理解正确。据我所知,在事务性内存中,线程可以并行执行事务。如果两个(或多个)线程尝试访问同一事务变量,则除一个线程外的所有线程都将中止事务并重新开始(在某个时间点,不一定立即)。不中止的更新事务变量


总之,在TM中,所有线程都是并行运行的,我们希望不会有对事务变量的任何访问重叠,如果有,我们只允许一个线程继续,而其他线程回滚并重试。对TM的这种理解正确吗?

这是一个非常好的概要。细节非常复杂,可能有些事务无法在给定的TM监视器中表达;这意味着您可能必须包含事务的两个实现——乐观和悲观

缓存是底层实现;当您对内存进行事务性引用时,缓存会注意到这一点,并在修改这些引用时生成警报(重新启动),或者在修改任何引用时拒绝事务关闭

事务变量的数量通常必须低于缓存的关联性;否则,它们将从缓存中彼此逐出,导致无法完成的事务

中断在事务处理过程中如何发挥作用仍然是一个悬而未决的问题

简言之,20年前这是一个有点迷人的想法。随着它接近通用性,它的硬件需求似乎在迅速扩展。与加速计算机系统相比,它对温暖寒冷气候可能更有用