-
ThreadPoolExecutor#Worker.interruptIfIdle源码 困惑5
/**
* Interrupts thread if not running a task.
*/
void interruptIfIdle() {
final ReentrantLock runLock = this.runLock;
if (runLock.tryLock()) {
try {
if (thread != Thread.currentThread())
thread.interrupt();
} finally {
runLock.unlock();
}
}
}
当在ThreadPoolExecutor.shutdown()时会调用到Worker.interruptIfIdle()方法。但是ThreadPoolExecutor.shutdown()的线程和worker所在的线程肯定是不一样的呀,因此肯定会执行thread.interrput(),这样正在运行的worker也会被中断么?不懂,求解!!2013年2月24日 09:48
目前还没有答案
相关推荐
ThreadPoolExecutor源码解析.md
《ThreadPoolExecutor源码解析》 ThreadPoolExecutor是Java并发编程中重要的组件,它是ExecutorService接口的实现,用于管理和调度线程的执行。理解其源码有助于我们更好地控制并发环境下的任务执行,提高系统的...
### Java基础知识 #### 1. Java的基本数据类型与String类型的区别...- 使用`ThreadPoolExecutor`类。 #### 40. JVM加载class文件的原理 - 描述类加载器如何加载类文件。 #### 41. 示例说明 - 提供具体的代码示例。
Java中的Executor框架提供了线程池的实现,如ThreadPoolExecutor和ScheduledThreadPoolExecutor。 #### 4. 线程通信 线程通信常用的方法有wait、notify和notifyAll,这些方法都是Object类的成员方法。通过这三个...
- **ThreadPoolExecutor**:自定义线程池的核心类。 - **ScheduledExecutorService**:支持定时任务的线程池。 #### 4. 原子操作 - **AtomicInteger/AtomicLong**:原子整型变量。 - **AtomicReference**:原子引用...
ThreadPoolExecutor是Java并发编程中非常重要的一个组件,它位于`java.util.concurrent`包下,用于管理线程资源,实现线程池服务。线程池通过有效地控制并发执行的任务数量,可以提高系统的性能和稳定性。 ...
- **线程池**:ExecutorService、ThreadPoolExecutor等类,管理线程资源。 - **锁机制**:synchronized关键字、ReentrantLock等。 - **并发容器**:ConcurrentHashMap等,支持高并发下的数据操作。 ### 七、网络...
- **线程池**:ExecutorService,ThreadPoolExecutor的配置与使用。 #### 4. 内存模型 - **JVM内存区域**:堆、栈、方法区、程序计数器、本地方法栈。 - **垃圾回收**:GC算法,如何调优。 #### 5. 设计模式 - **...
- 通过`ExecutorService`接口和`ThreadPoolExecutor`实现类来创建和管理线程池。 #### 6. Synchronized与Lock - **Synchronized**: 内置锁机制,可实现对象锁和方法锁。对象锁作用于对象实例,而方法锁则锁定整个...
4. **多线程**:`java.lang.Thread`和`java.util.concurrent`包中的类,如`ExecutorService`、`ThreadPoolExecutor`等,展示了如何实现并发和异步执行。 5. **反射机制**:`java.lang.reflect`包中的类,如`Class`...
- **线程池管理**:Executor框架、ThreadPoolExecutor类详解。 #### 第二阶段:高级技术与最佳实践 ##### 1. 锁优化技术 - **公平锁与非公平锁**:锁获取策略对比及应用场景分析。 - **自旋锁**:原理、优缺点及...
- **线程池**:Executor框架的基本概念,如ThreadPoolExecutor等。 - **并发工具类**:如CountDownLatch、CyclicBarrier等,了解它们的用途及应用场景。 ### Java高级特性 #### 1. 泛型 - **泛型类和接口**:如何...
- **`ThreadPoolExecutor`**内部使用`WorkQueue`来管理任务, 当任务完成后, 任务的状态会被更新, 从而通知线程池。 #### 4. `ConcurrentHashMap`底层实现 - **分段锁技术**: 在JDK 1.7及之前版本使用。 - **红黑树...
死磕ThreadPoolExecutor线程池.pdf!!死磕ThreadPoolExecutor线程池.pdf死磕ThreadPoolExecutor线程池.pdf死磕ThreadPoolExecutor线程池.pdf
由于Executor本身是一个抽象类,因此不能直接使用它来创建实例,而应该使用它的两个子类ThreadPoolExecutor和ProcessPoolExecutor。 #### 2. ThreadPoolExecutor ThreadPoolExecutor是Executor的一个子类,它使用...
- **ThreadPoolExecutor**:核心线程池类。 - **Executors工具类**:提供多种预定义的线程池工厂方法。 - **线程池参数配置**:如corePoolSize、maximumPoolSize、keepAliveTime等。 #### 3. 原子变量 - **...
Java中的线程池是通过`java.util.concurrent.ExecutorService`接口和其实现类(如`ThreadPoolExecutor`)来创建的。线程池可以有效地管理线程资源,避免频繁创建和销毁线程带来的开销。通过设置线程池的参数(核心...