У меня есть Class
по имени Foo
, который вызывает метод non-static
barMethod()
от Bar
. Bar
распространяется Fiber
.
Внутри barMethod()
есть звонок park()
. Теперь, где Fiber
будет припаркован? Foo
экземпляр или Bar
экземпляр?
Подпись park()
(Она определяется static
и это главная причина моего замешательства):
Quasar SuspendExecution
public static void park()
throws SuspendExecution
Если ответ Foo
(кажется, так), как я могу оставить Bar
? Я в основном намерен suspend (park)
Bar
не Foo
.
И если вы дадите мне ответ о том, как парковать Bar
экземпляр, то, пожалуйста, скажите мне, что, поскольку я хочу припарковать Bar
, а не Foo
, should barMethod()
throw SuspendExecution
? Он не будет доступен ни одному экземпляру Bar
, и я не хочу припарковать в этом методе Foo
(только Bar
).
Просьба также предоставить ответ на все те же вопросы о unpark()
. Будет ли он применяться к текущему Fiber
(Foo
экземпляру в этом случае) или он влияет на экземпляр Bar
? Если последний, то как я могу отформатировать экземпляр Bar
, а не Foo
экземпляр?