hiveInterruptils.interrupt()如何工作?

hiveInterruptils.interrupt()如何工作?,hive,interrupt,Hive,Interrupt,我最近一直在阅读hive的源代码,但是我被这个interrupt()弄糊涂了。我想知道它是如何中断当前配置单元命令的。此函数的位置位于CliDriver.processLine()在HIVEINTERRUPTILS的实现中,找到以下内容: public static void interrupt() { synchronized (interruptCallbacks) { for (HiveInterruptCallback resource :

我最近一直在阅读hive的源代码,但是我被这个
interrupt()
弄糊涂了。我想知道它是如何中断当前配置单元命令的。此函数的位置位于
CliDriver.processLine()

在HIVEINTERRUPTILS的实现中,找到以下内容:

public static void interrupt() {
    synchronized (interruptCallbacks) {
          for (HiveInterruptCallback resource : 
                       new ArrayList<HiveInterruptCallback>(interruptCallbacks)) {
            resource.interrupt();
          }
    }
}
以前注册的资源实现HIVEINTERRUPTCALL interrupt()方法,因此HIVEINTERRUPTILS.INTERRUP()行为取决于特定的资源实现

public interface HiveInterruptCallback {
  /**
  * Request interrupting of the processing
  */
  void interrupt();
}