GcLogger.java 文件源码

java
阅读 24 收藏 0 点赞 0 评论 0

项目:spectator 作者:
/**
 * Start collecting data about GC events.
 *
 * @param listener
 *     If not null, the listener will be called with the event objects after metrics and the
 *     log buffer is updated.
 */
public synchronized void start(GcEventListener listener) {
  // TODO: this class has a bad mix of static fields used from an instance of the class. For now
  // this has been changed not to throw to make the dependency injection use-cases work. A
  // more general refactor of the GcLogger class is needed.
  if (notifListener != null) {
    LOGGER.warn("logger already started");
    return;
  }
  eventListener = listener;
  notifListener = new GcNotificationListener();
  for (GarbageCollectorMXBean mbean : ManagementFactory.getGarbageCollectorMXBeans()) {
    if (mbean instanceof NotificationEmitter) {
      final NotificationEmitter emitter = (NotificationEmitter) mbean;
      emitter.addNotificationListener(notifListener, null, null);
    }
  }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号