2011年11月14日 10:44 "@banq"的内容
CAS在Java中已经比较底层了,如果它的API告诉你它是使用CAS实现的,你就可以放心使用,也知道它属于一种非锁,有很好的并发性和线程安全性。 ...

CAS本身的确相当底层了,其实现是本地函数(操作系统级别,甚至可能是硬件级别)。不过其思想可以拿过来用,例如事件完成后,发现事件条件与现时状态不一,则获取新状态重新执行。

to SpeedVan

从不变模型的角度来说, 事件的条件应该是不变的吧,除非是"条件"是"非并行点".

2011年11月15日 13:02 "@donglangjohn"的内容
to SpeedVan

从不变模型的角度来说, 事件的条件应该是不变的吧,除非是"条件"是"非并行点". ...


不存在变化,用户是获取不了信息的。实体就是用户获取信息的途径,所以实体是变化的,是副作用的。请记住某些副作用是不可避免的,一般是信息的获取和发送,如IO流。

条件是不变的,但条件的载体是可变的,如key/value,key-value是一对的,我们通过key获取value,若果key-value关系不会变得话,就没有意义了。


我们从key获取值后,不代表key-value对不会发生改变。对象只要被引用就不会被回收,所以我们当前逻辑是独立的,不会受外界影响,而外界也不会因为该逻辑而固化。KEY不引用A,不代表A发生了变化。

[该贴被SpeedVan于2011-11-15 23:49修改过]

to SpeedVan

可能是语言表达不清楚

不变模式下: 在某一时刻,事件的条件是不变的,在下一时刻就有可能变化.

关于"除非是条件是非并行点",应该是另一个话题了.

2011年11月16日 12:09 "@donglangjohn"的内容

顶一下
to SpeedVan

可能是语言表达不清楚

不变模式下: 在某一时刻,事件的条件是不变的,在下一时刻就有可能变化.

关于"除非是条件是非并行点",应该是另一个话题了. ...

不知是你说错了,还是理解错了。

事件有着时间与空间的代表性,所以下一时刻发生的事件是独立于上一时刻的,对于事件来说,所有都是已确定的,也就是事件一旦生成就是不变的,剩下的就是等待处理。“A向B转50元”是一个事件,“A向X转50元”,“A向B转X元”,“(A)/(向B)转50元”,“A向B”这些都不能成为事件。

变化的不是事件,而是环境。
[该贴被SpeedVan于2011-11-16 13:13修改过]
[该贴被SpeedVan于2011-11-16 14:21修改过]

2011年11月16日 13:07 "@SpeedVan"的内容
事件有着时间与空间的代表性,所以下一时刻发生的事件是独立于上一时刻的,对于事件来说,所有都是已确定的,也就是事件一旦生成就是不变的,剩下的就是等待处理。“A向B转50元”是一个事件,“A向X转50元”,“A向B转X元”,“(A)/(向B)转 ...


确实是我的语言表述不清楚,实际上就是你说的。

1)“A向B转50元”是一个事件。

2)“A向X转50元”,
3)“A向B转X元”,
4)“(A)/(向B)转50元”
5)“A向B”

2-4 为什么不能成为事件。
5 --- 不完整,不能成为事件,这个认可。