12

の「else」部分は、別のトランザクションが読み取っorElseたトランザクションに書き込んでいるためにトランザクションが再試行されたときに呼び出されますか、それとも明示的に呼び出されたときにのみ呼び出されますか?TVarretry

4

1 に答える 1

11

あなたが持っている場合

orElse ab

thenは で明示的に呼び出されたb場合にのみ実行されます。そうしないと、本質的に非決定論的になります。(STM ランタイムによって行われるトランザクションの再実行は透過的であり、計算の結果には影響しません。)retryaorElse

于 2012-04-11T07:28:00.027 に答える