3
假设:醒来通过推送通知
- 有一些物体(例如,阵列
a
)和依赖于物体上的条件(例如,如a.empty?
)。 - 除当前线程以外的某些线程可以操作对象(
a
),因此条件的评估值的真实性随时间而变化。
如何让当前线程在代码中的某个点处休眠,并在条件满足时通过推送通知继续(唤醒)?
我不想做轮询是这样的:
...
sleep 1 until a.empty?
...
也许使用Fiber
将是一个线索。
无论条件是什么,编写一个钩子,任何时候调用您的行为都会调用它。它可以容纳当时可以处理的一组对象,可能是线程或光纤。这可能与[本项目](https://github.com/kristinalim/ruby_hooks)相似 – vgoff