“共享副作用”和“共享资源”的区别

Posted

技术标签:

【中文标题】“共享副作用”和“共享资源”的区别【英文标题】:Differences between "Share Side effect" and "Share Resources" 【发布时间】:2019-08-26 17:23:36 【问题描述】:

我正在研究 RxSwift 和 RxCocoa。 官方文档中有这些解释。

    分享副作用 分享资源

它们是一样的吗? 如果有区别,有什么区别? 只是官方文档的解释看不懂。

提前感谢您的回答。

【问题讨论】:

什么官方文件?您能否提供使用这些术语的链接? 我在查看下面链接中的文档时想知道。 github.com/ReactiveX/RxSwift/blob/master/Documentation/… 驱动程序 - 不能出错。 - 观察发生在主调度程序上。 - 分享副作用(分享(重播:1,范围:.whileConnected))。 信号 - 不能出错。 - 在主调度程序上提供事件。 - 共享计算资源(共享(范围:.whileConnected))。 - 不会在订阅时重播元素。 【参考方案1】:

文档在每个短语旁边的括号中准确显示了“共享副作用”和“共享计算资源”的含义。

短语“共享副作用”表示它使用share(replay: 1, scope: .whileConnected),而“共享计算资源”表示它使用share(scope: .whileConnected)

这告诉您共享副作用将重播每个新订阅的最后发出的值,而共享计算资源则不会。否则,它们是相同的。

【讨论】:

以上是关于“共享副作用”和“共享资源”的区别的主要内容,如果未能解决你的问题,请参考以下文章

C#中 BackGroundWorker与Thread的区别?

父子进程共享资源的关系

C# 悲观锁和乐观锁的区别以及使用场景。

java多线程系列-死锁与活锁的区别,死锁与饥饿的区别

Go sync.atomic原子操作的学习

不同的WAR文件,共享资源