3
假設:醒來通過推送通知
- 有一些物體(例如,陣列
a
)和依賴於物體上的條件(例如,如a.empty?
)。 - 除當前線程以外的某些線程可以操作對象(
a
),因此條件的評估值的真實性隨時間而變化。
如何讓當前線程在代碼中的某個點處休眠,並在條件滿足時通過推送通知繼續(喚醒)?
我不想做輪詢是這樣的:
...
sleep 1 until a.empty?
...
也許使用Fiber
將是一個線索。
無論條件是什麼,編寫一個鉤子,任何時候調用您的行爲都會調用它。它可以容納當時可以處理的一組對象,可能是線程或光纖。這可能與[本項目](https://github.com/kristinalim/ruby_hooks)相似 – vgoff