Как должны использоваться @TransitionFrom и @TransitionTo
Java Flight Recorder API содержит две аннотации TransitionFrom и TransitionTo, но документация очень легка в том, как их следует использовать.
Как они должны быть использованы? Я предполагаю, что они идут на полях событий. Должны ли они быть логическими или потоковыми полями? Когда поля должны быть установлены на какие значения?
1 ответ
Цель @TransitionTo и @TransitionFrom - намекнуть графическому пользовательскому интерфейсу, такому как JDK Mission Control, что существует переход от потока A к потоку B.
GUI может затем визуализировать его как стрелки перехода:
Если вы фиксируете событие в потоке A, вы должны создать поле потока и аннотировать его с помощью @TransitionTo и назначить ему поток B.
@Name("com.organization.product.Notification")
@Label("Notification")
public class Notification extends jdk.jfr.Event {
@TransitionTo
@Label ("Receiver");
Thread receiver;
}
Если удобнее зафиксировать событие в потоке B, вы должны создать поле с аннотацией @TransitionFrom и назначить его с потоком A.
@Name("com.organization.product.Notification")
@Label("Notification")
public class Notification extends jdk.jfr.Event {
@TransitionFrom
@Label ("Notifier");
Thread notifier;
}