考虑到 realized? 的文档字符串,我同意如果在执行中的延迟,则返回 false 是正确的行为。但是,肯定有情况是,我在并发上下文中同时使用延迟和 realized? 来确定“延迟是否已被强制执行?”以决定是否在原子中替换延迟(或等待已经执行的进程完成)。对于这个目的,我可以使用解引用除外,我不想在没有执行的进程的情况下启动该进程。
如果我理解正确,在 1.11 版本之后,我不能再使用 realized? 来检测这种情况。是否有支持判断“延迟是否已被强制执行?”的方法,或者我现在需要为自己的结构创建方法?
一个 forcer() / forced? 变量可以作为一个可能的解决方案,它在 deref 的同步块进入时(在 thouck 开始/完成后)变为真/对所有线程可见。