Как должны использоваться @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;
}
Другие вопросы по тегам