`
baishuo491
  • 浏览: 78459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

hadoop里面的代码片段

 
阅读更多
注释的翻译如下:先interrupt所有的线程,在join它们,如果interrupted,就返回false,表明某些线程还在running
/**
   * Try to interrupt all of the given threads, and join on them.
   * If interrupted, returns false, indicating some threads may
   * still be running.
   */
  private boolean interruptAndJoinThreads(List<Thread> threads) {
    // interrupt and wait for all ongoing create threads
    for(Thread t : threads) {
      t.interrupt();
    }
    for(Thread t : threads) {
      try {
        t.join();
      } catch (InterruptedException e) {
        DataNode.LOG.warn("interruptOngoingCreates: t=" + t, e);
        return false;
      }
    }
    return true;
  }
看一看thread的interrupt函数,从注释上看,如果interrupt还没结束就返回join,就会抛出InterruptedException
    /**
     * Interrupts this thread.
     *
     * <p> Unless the current thread is interrupting itself, which is
     * always permitted, the {@link #checkAccess() checkAccess} method
     * of this thread is invoked, which may cause a {@link
     * SecurityException} to be thrown.
     *
     * <p> If this thread is blocked in an invocation of the {@link
     * Object#wait() wait()}, {@link Object#wait(long) wait(long)}, or {@link
     * Object#wait(long, int) wait(long, int)} methods of the {@link Object}
     * class, or of the {@link #join()}, {@link #join(long)}, {@link
     * #join(long, int)}, {@link #sleep(long)}, or {@link #sleep(long, int)},
     * methods of this class, then its interrupt status will be cleared and it
     * will receive an {@link InterruptedException}.
     *
     * <p> If this thread is blocked in an I/O operation upon an {@link
     * java.nio.channels.InterruptibleChannel </code>interruptible
     * channel<code>} then the channel will be closed, the thread's interrupt
     * status will be set, and the thread will receive a {@link
     * java.nio.channels.ClosedByInterruptException}.
     *
     * <p> If this thread is blocked in a {@link java.nio.channels.Selector}
     * then the thread's interrupt status will be set and it will return
     * immediately from the selection operation, possibly with a non-zero
     * value, just as if the selector's {@link
     * java.nio.channels.Selector#wakeup wakeup} method were invoked.
     *
     * <p> If none of the previous conditions hold then this thread's interrupt
     * status will be set. </p>
     *
     * <p> Interrupting a thread that is not alive need not have any effect.
     *
     * @throws  SecurityException
     *          if the current thread cannot modify this thread
     *
     * @revised 6.0
     * @spec JSR-51
     */
    public void interrupt() {
if (this != Thread.currentThread())
    checkAccess();

synchronized (blockerLock) {
    Interruptible b = blocker;
    if (b != null) {
interrupt0(); // Just to set the interrupt flag
b.interrupt();
return;
    }
}
interrupt0();
    }
分享到:
评论

相关推荐

    hadoop源代码存档

    【Hadoop源代码存档详解】 Hadoop是Apache软件基金会的一个开源项目,它是一个分布式文件系统,旨在提高数据处理和存储的效率。这个"hadopp源代码存档"包含了Hadoop项目的完整源代码,供开发者深入理解其内部机制,...

    Hadoop源代码分析完整版.pdf

    Hadoop源代码分析完整版.pdf

    深入云计算:Hadoop源代码分析(修订版)

    深入云计算:Hadoop源代码分析(修订版)

    Hadoop源代码分析

    《Hadoop源代码分析》是一本深入探讨Hadoop核心组件MapReduce的专著。Hadoop是Apache软件基金会的一个开源项目,旨在提供分布式存储和计算框架,以处理和存储大量数据。MapReduce是Hadoop的核心计算模型,它通过将大...

    深入云计算 Hadoop源代码分析

    ### 深入云计算 Hadoop源代码分析 #### 一、引言 随着大数据时代的到来,数据处理成为了各个领域中的关键技术之一。Hadoop作为一个开源的大数据处理框架,因其优秀的分布式计算能力,在业界得到了广泛的应用。...

    Hadoop源代码分析(一)

    本文将深入Hadoop的源代码,探讨其设计原理和实现机制,帮助开发者更好地理解和优化Hadoop系统。 Hadoop的源代码分析可以从以下几个关键点开始: 1. **HDFS架构**:HDFS是一个分布式文件系统,设计用于在廉价硬件...

    Hadoop源代码分析(完整版).pdf

    Hadoop 源代码分析 Hadoop 是一个开源的分布式计算框架,由 Apache 基金会维护。Hadoop 的核心组件包括 HDFS(Hadoop Distributed File System)和 MapReduce。HDFS 是一个分布式文件系统,可以存储大量的数据,而 ...

    进军Hadoop源代码

    标题“进军Hadoop源代码”和描述“进军Hadoop源代码,进军Hadoop源代码,进军Hadoop源代码,进军Hadoop源代码”看似重复,实际上强调了对Hadoop源代码的重要性。Hadoop是一个开源的分布式存储与计算系统,由Apache...

    Hadoop源代码分析(完整版

    在Hadoop源代码分析中,首先,我们可以看到HDFS(Hadoop分布式文件系统)是所有基于Hadoop项目的基础。HDFS的设计灵感来源于Google的GFS(Google File System),它通过将大文件分割成块并复制到多个节点来确保数据...

    Hadoop源代码分析(完整版)

    ### Hadoop源代码分析知识点详解 #### 一、Hadoop背景与关键技术介绍 Hadoop作为一款开源的大数据处理框架,其设计灵感源自Google的一系列核心论文。这些论文详细阐述了Google构建其基础设施的方法论和技术原理,...

    大数据处理系统:Hadoop源代码情景分析

    资源名称:大数据处理系统:Hadoop源代码情景分析内容简介:Hadoop是目前重要的一种开源的大数据处理平台,读懂Hadoop的源代码,深入理解其各种机理,对于掌握大数据处理的技术有着显而易见的重要性。 本书从大数据...

    Hadoop源代码分析完整版

    ### Hadoop源代码分析知识点详解 #### 一、Hadoop与云计算的核心技术 Hadoop作为分布式计算领域的核心框架,其源代码分析对于深入理解云计算的底层实现至关重要。Hadoop最初的设计灵感来源于Google的一系列论文,...

    hadoop 资源代码归档

    【标题】"Hadoop资源代码归档"指出这是一个与Hadoop相关的代码库或者代码集合,可能包含各种Hadoop组件的源...对于Hadoop开发者而言,真正的价值可能在于未列出的其他文件,这些文件可能包含实际的Hadoop代码和工具。

    hadoop实战源代码Java

    这个压缩包可能包含了这些源代码示例,如`shizhan_03_hadoop`,这可能是一个实战项目或教程的目录结构,里面可能包含多个Java类,展示了如何使用Hadoop API与HDFS通信。 1. **文件上传**:使用HDFS的`...

    Hadoop源代码分析(包mapreduce.lib.map)

    包mapreduce.lib.map的Hadoop源代码分析

    实战hadoop源代码

    本资源包含了《实战Hadoop》一书的源代码,这本书旨在帮助读者深入理解Hadoop的运作机制,并通过实际操作提升在大数据处理方面的技能。 Hadoop的核心组件主要包括Hadoop Distributed File System (HDFS)和MapReduce...

    hadoop源代码打包归档

    很抱歉,根据您给出的信息,"hadoop源代码打包归档"这个主题与提供的压缩包文件内容不匹配。压缩包内的文件看起来是法律讲座的资料,而非与Hadoop相关的源代码或技术文档。Hadoop是一个开源的大数据处理框架,通常...

Global site tag (gtag.js) - Google Analytics