注释的翻译如下:先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是Apache软件基金会的一个开源项目,它是一个分布式文件系统,旨在提高数据处理和存储的效率。这个"hadopp源代码存档"包含了Hadoop项目的完整源代码,供开发者深入理解其内部机制,...
Hadoop源代码分析完整版.pdf
深入云计算:Hadoop源代码分析(修订版)
《Hadoop源代码分析》是一本深入探讨Hadoop核心组件MapReduce的专著。Hadoop是Apache软件基金会的一个开源项目,旨在提供分布式存储和计算框架,以处理和存储大量数据。MapReduce是Hadoop的核心计算模型,它通过将大...
### 深入云计算 Hadoop源代码分析 #### 一、引言 随着大数据时代的到来,数据处理成为了各个领域中的关键技术之一。Hadoop作为一个开源的大数据处理框架,因其优秀的分布式计算能力,在业界得到了广泛的应用。...
本文将深入Hadoop的源代码,探讨其设计原理和实现机制,帮助开发者更好地理解和优化Hadoop系统。 Hadoop的源代码分析可以从以下几个关键点开始: 1. **HDFS架构**:HDFS是一个分布式文件系统,设计用于在廉价硬件...
Hadoop 源代码分析 Hadoop 是一个开源的分布式计算框架,由 Apache 基金会维护。Hadoop 的核心组件包括 HDFS(Hadoop Distributed File System)和 MapReduce。HDFS 是一个分布式文件系统,可以存储大量的数据,而 ...
标题“进军Hadoop源代码”和描述“进军Hadoop源代码,进军Hadoop源代码,进军Hadoop源代码,进军Hadoop源代码”看似重复,实际上强调了对Hadoop源代码的重要性。Hadoop是一个开源的分布式存储与计算系统,由Apache...
在Hadoop源代码分析中,首先,我们可以看到HDFS(Hadoop分布式文件系统)是所有基于Hadoop项目的基础。HDFS的设计灵感来源于Google的GFS(Google File System),它通过将大文件分割成块并复制到多个节点来确保数据...
### Hadoop源代码分析知识点详解 #### 一、Hadoop背景与关键技术介绍 Hadoop作为一款开源的大数据处理框架,其设计灵感源自Google的一系列核心论文。这些论文详细阐述了Google构建其基础设施的方法论和技术原理,...
资源名称:大数据处理系统:Hadoop源代码情景分析内容简介:Hadoop是目前重要的一种开源的大数据处理平台,读懂Hadoop的源代码,深入理解其各种机理,对于掌握大数据处理的技术有着显而易见的重要性。 本书从大数据...
### Hadoop源代码分析知识点详解 #### 一、Hadoop与云计算的核心技术 Hadoop作为分布式计算领域的核心框架,其源代码分析对于深入理解云计算的底层实现至关重要。Hadoop最初的设计灵感来源于Google的一系列论文,...
【标题】"Hadoop资源代码归档"指出这是一个与Hadoop相关的代码库或者代码集合,可能包含各种Hadoop组件的源...对于Hadoop开发者而言,真正的价值可能在于未列出的其他文件,这些文件可能包含实际的Hadoop代码和工具。
这个压缩包可能包含了这些源代码示例,如`shizhan_03_hadoop`,这可能是一个实战项目或教程的目录结构,里面可能包含多个Java类,展示了如何使用Hadoop API与HDFS通信。 1. **文件上传**:使用HDFS的`...
包mapreduce.lib.map的Hadoop源代码分析
本资源包含了《实战Hadoop》一书的源代码,这本书旨在帮助读者深入理解Hadoop的运作机制,并通过实际操作提升在大数据处理方面的技能。 Hadoop的核心组件主要包括Hadoop Distributed File System (HDFS)和MapReduce...
很抱歉,根据您给出的信息,"hadoop源代码打包归档"这个主题与提供的压缩包文件内容不匹配。压缩包内的文件看起来是法律讲座的资料,而非与Hadoop相关的源代码或技术文档。Hadoop是一个开源的大数据处理框架,通常...