java共193篇

面试题:Java 中线程之间如何进行通信?

在 Java 中,线程间的通信可以通过多种机制实现,以确保多个线程能够协调工作而不发生数据不一致或竞争条件的问题。以下是几种常见的线程间通信的方法: 1. 使用 wait(), notify() 和 notifyAll...
程序百科的头像-程序百科程序百科1个月前
3711

面试题:什么是 Java 的 CompletableFuture?

CompletableFuture 是 Java 8 引入的一个类,位于 java.util.concurrent 包中,它是对 Future 接口的扩展和增强。CompletableFuture 提供了一种更加灵活且强大的方式来处理异步编程任务,允许你...
程序百科的头像-程序百科程序百科1个月前
4715

面试题:你了解 Java 线程池的原理吗?

是的,我了解 Java 线程池的原理。线程池(Thread Pool)是 Java 并发编程中非常重要的一个机制,它的核心目的是复用线程、提高性能、管理并发资源。Java 中线程池的核心实现类是 ThreadPoolExe...
程序百科的头像-程序百科程序百科1个月前
2312

面试题:如何合理地设置 Java 线程池的线程数?

合理设置 Java 线程池的线程数是优化应用程序性能的关键步骤之一。这涉及到对任务类型的理解(I/O 密集型 vs CPU 密集型)、系统资源限制以及应用的具体需求。下面是一些指导原则和建议,帮助你...
程序百科的头像-程序百科程序百科1个月前
5215

面试题:Java 线程池有哪些拒绝策略?

在 Java 的 java.util.concurrent 包中,线程池通过 ThreadPoolExecutor 类来管理任务的执行。 当提交的任务超过了线程池的最大容量(即核心线程数加上队列容量)时,就需要一种策略来处理这些...
程序百科的头像-程序百科程序百科1个月前
335

面试题:Java 并发库中提供了哪些线程池实现?它们有什么区别?

Java 并发库(java.util.concurrent 包)提供了多种线程池实现,这些实现通过 Executors 工厂类提供便捷的创建方法。以下是几种常见的线程池类型及其特点和适用场景: 1. FixedThreadPool 创建...
程序百科的头像-程序百科程序百科1个月前
358

面试题: Java 线程池核心线程数在运行过程中能修改吗?如何修改?

在 Java 的 ThreadPoolExecutor 中,核心线程数(core pool size)默认情况下是在创建线程池实例时设定的,并且在运行期间通常是固定的。 然而,在某些情况下你可能需要动态调整核心线程数以适...
程序百科的头像-程序百科程序百科1个月前
4012

面试题:Java 线程池中 shutdown 与 shutdownNow 的区别是什么?

在 Java 的 ExecutorService 接口中,shutdown() 和 shutdownNow() 都是用来关闭线程池的方法,但它们的行为和效果有所不同。理解两者之间的差异对于正确管理线程池的生命周期至关重要。 shutdo...
程序百科的头像-程序百科程序百科1个月前
2715

面试题:Java 线程池内部任务出异常后,如何知道是哪个线程出了异常?

在 Java 中,当你使用线程池(如 ThreadPoolExecutor 或其更高级别的封装如 Executors.newFixedThreadPool() 等)执行任务时,如果任务内部抛出了未捕获的异常,默认情况下这个异常不会直接反馈...
程序百科的头像-程序百科程序百科1个月前
5112

面试题:Java 中的 DelayQueue 和 ScheduledThreadPool 有什么区别?

在 Java 中,DelayQueue 和 ScheduledThreadPoolExecutor 都是用于处理延迟任务的工具,但它们的设计目的、使用方式和内部实现都有显著的区别。下面将详细介绍这两者的不同之处。 DelayQueue De...
程序百科的头像-程序百科程序百科1个月前
215