java并发编程
文章平均质量分 89
JAVA程序猿成长之路
这个作者很懒,什么都没留下…
展开
-
java.util.concurrent.Future 使用指南
1.介绍本篇文章将了解 Future。 一个自 Java 1.5 以来就存在的接口,它在处理异步调用和并发处理时非常有用。2.创建Futures简单地说,Future 类表示异步计算的未来结果。 这个结果最终会在处理完成后出现在 Future 中。长时间运行的方法很适合异步处理和Future接口,因为可以在等待Future封装的任务完成的同时执行其他进程。一些可以利用Future异步特性的操作示例如下:计算密集型过程(数学和科学计算)操作大型数据结构(大数据)远程方法调用(下载文件、HTM原创 2021-10-06 09:43:14 · 2869 阅读 · 0 评论 -
Java并发面试问题
文章目录进程和线程有什么区别?如何创建线程实例并运行它?描述线程的不同状态以及状态转换何时发生。Runnable 和 Callable 接口之间有什么区别?它们是如何使用的?什么是守护线程,它的用例是什么? 如何创建守护线程?线程的中断标志是什么? 如何设置和检查它? 它与 InterruptedException 有什么关系?什么是 Executor 和 Executorservice? 这些接口之间有什么区别?标准库中 Executorservice 的可用实现有哪些?什么是 Java 内存模型 (Jm原创 2021-09-26 08:52:39 · 207 阅读 · 0 评论 -
Java中线程的生命周期
1.介绍详细讨论 Java 中的一个核心概念——线程的生命周期。2.Java 中的多线程在 Java 语言中,多线程是由线程的核心概念驱动的。 在它们的生命周期中,线程会经历各种状态:3.Java 线程的生命周期java.lang.Thread 类包含一个静态的 State 枚举——它定义了它的潜在状态。 在任何给定的时间点,线程只能处于以下状态之一:NEW – 新创建的尚未开始执行的线程RUNNABLE – 正在运行或准备执行但正在等待资源分配BLOCKED – 等待获取监视器锁以进入原创 2021-09-26 08:47:38 · 372 阅读 · 0 评论 -
Java fork/Join 框架指南
文章目录1.介绍2. ForkJoinPool2.1. 工作窃取算法2.2. ForkJoinPool 实例化3. ForkJoinTask3.1. RecursiveAction 例子3.2. RecursiveTask4.向 ForkJoinPool 提交任务5.总结1.介绍fork/join 框架是在 Java 7 中提出的。它提供了一些工具,通过尝试使用所有可用的处理器内核来帮助加速并行处理——这是通过分而治之的方法来实现的。在实践中,这意味着框架首先“分叉”,递归地将任务分解为更小的独立子任原创 2021-07-23 22:59:35 · 325 阅读 · 0 评论 -
Java中CyclicBarrier使用指南
文章目录1.介绍2.Java 并发——同步器3. CyclicBarrier4.使用5.实现6.结果1.介绍CyclicBarriers 是在 Java 5 中作为 java.util.concurrent 包的一部分引入的同步结构。2.Java 并发——同步器java.util.concurrent 包包含几个类,这些类有助于管理一组相互协作的线程。 其中一些包括:CyclicBarrierPhaserCountDownLatchExchangerSemaphoreSynchrono原创 2021-07-02 13:59:49 · 347 阅读 · 2 评论 -
CompletableFuture使用
CompletableFuture使用文章目录1.Java中的异步计算2.使用CompletableFuture作为简单的Future3.CompletableFuture封装计算逻辑4.异步计算的处理结果5.合并 Future6.thenApply()和thenCompose()之间的区别6.1thenApply()6.2thenCompose()7.并行运行多个Futures8.处理错误9.异步方法CompletableFuture类类是Java 8 Concurrency API的改进而引入的。原创 2021-06-19 15:19:00 · 978 阅读 · 0 评论 -
Java中延迟队列使用指南
1.介绍本文中,将了解 java.util.concurrent 包中的 DelayQueue 构造。 这是一个阻塞队列,可以在生产者-消费者程序中使用。它有一个非常有用的特性——当消费者想要从队列中取出一个元素时,只能在该特定元素的延迟到期时才能取出。2.为DelayQueue中的元素实现Delayed想要放入 DelayQueue 的每个元素都需要实现 Delayed 接口。 假设要创建一个 DelayObject 类。 该类的实例将被放入 DelayQueue。将 String 数据和 de原创 2021-09-24 21:30:47 · 1167 阅读 · 0 评论 -
java.util.concurrent.BlockingQueue 使用指南
1.介绍本文介绍,解决并发生产者-消费者问题的最有用的构造 java.util.concurrent 之一。 将查看 BlockingQueue 接口的 API 以及该接口中的方法如何使编写并发程序更容易。2.阻塞队列类型可以区分两种类型的 BlockingQueue:无界队列—几乎可以无限增长有界队列—定义了最大容量2.1. 无界队列创建无界队列很简单:BlockingQueue<String> blockingQueue = new LinkedBlockingDeque原创 2021-09-24 21:27:06 · 412 阅读 · 0 评论 -
Java中的 Semaphores
1.介绍探索 Java 中信号量和互斥体的基础知识。2. Semaphore从 java.util.concurrent.Semaphore 开始,可以使用信号量来限制访问特定资源的并发线程数。在下面的例子中,将实现一个简单的登录队列来限制系统中的用户数量:public class LoginQueueUsingSemaphore { private Semaphore semaphore; public LoginQueueUsingSemaphore(int slotLimi原创 2021-09-24 21:20:27 · 583 阅读 · 1 评论 -
java.util.concurrent 包介绍
文章目录1.介绍2.主要组件2.1. Executor2.2. ExecutorService2.3. ScheduledExecutorService2.4. Future2.5. CountDownLatch2.6. CyclicBarrier2.7. Semaphore2.8. ThreadFactory2.9.BlockingQueue2.10. DelayQueue2.11. Locks2.12. Phaser1.介绍java.util.concurrent 包提供了用于创建并发应用程序的工具原创 2021-09-11 09:19:30 · 1676 阅读 · 0 评论