问题描述
我想我已经发现了一种模式,但是我不知道它的名字。我非常怀疑我是在这里真正发明的。
使用伪代码:
queue(closure) = { if (closure.isRunning) suspend return deferred else result = closure.run() deferred.notify(result) return result } // usage: result = queue { slow_computation() }
@H_502_7@
queue
的作用是:
- 检查是否已在运行
slow_computation()
- 如果存在,它将暂停/阻塞线程,并等待上一个结果。
- 如果没有,它将运行
slow_computation()
并通知暂停/阻塞的线程有关结果。与普通结果缓存不同,“缓存”会尽快丢弃。与普通操作队列不同,慢速计算的结果被重用。存在争用时,它将重用结果,否则不会重复。
问题是,您可以命名此模式吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)