
JUC
文章平均质量分 65
Chancezhou
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【线程工具类】优雅关停 和 捕获异常信息
开始有序关闭线程池,与此同时,已提交的任务将继续执行,但不再接收新的任务,如果线程池已关闭,此方法调用不会产生额外影响。(不会等任务执行完毕的意思是这个方法不会阻塞,也就是说任务队列的任务会继续执行,但是其他的线程可能会抢在这些任务之前执行,而awaitTermination()方法可以实现阻塞并等待任务执行完毕)execute在任务执行时,如果出现异常,默认在执行线程中会抛出异常并打印堆栈信息,且会删除执行的线程,本次execute要执行的任务就视为结束了,异常的抛出不会中断调用者线程;原创 2024-08-19 10:32:15 · 379 阅读 · 0 评论 -
JUC之CompletableFuture
在 Java 里面被用于异步编程,异步通常意味着非阻塞,可以使得我们的任务单独运行在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常等信息。只要在多个 future 里面有一个返回,整个任务就可以结束,而不需要等到每一个future 结束。合并两个有依赖关系的 CompletableFutures 的执行结果。一系列独立的 future 任务,等其所有的任务执行完后做一些事情。消费处理结果, 接收任务的处理结果,并消费处理,无返回结果。没有返回值的异步任务。原创 2023-10-13 17:15:13 · 183 阅读 · 0 评论 -
JUC之ForkJoin并行处理框架
JUC的forkjoin并行处理框架原创 2023-10-13 17:14:12 · 137 阅读 · 0 评论 -
JUC之BlockingQueue
JUC的阻塞队列介绍原创 2023-10-13 17:12:03 · 115 阅读 · 0 评论 -
JUC之ReentrantReadWriteLock
而对于获得写锁的线程,它一定独占了读写锁,因此可以继续让它获取读锁,当它同时获取了写锁和读锁后,还可以先释放写锁继续持有读锁,这样一个写锁就“降级”为了读锁。• 在线程持有读锁的情况下,该线程不能取得写锁(因为获取写锁的时候,如果发现当前的读锁被占用,就马上获取失败,不管读锁是不是被当前线程持有)。• 在线程持有写锁的情况下,该线程可以继续获取读锁(获取读锁时如果发现写锁被占用,只有写锁没有被当前线程占用的情况才会获取失败)。(3)锁降级:遵循获取写锁、获取读锁再释放写锁的次序,写锁能够降级成为读锁。原创 2023-09-18 13:47:54 · 84 阅读 · 0 评论 -
JUC提供的Lock辅助类
JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过多时 Lock 锁的频繁操作。这三种辅助类为:• CountDownLatch: 减少计数• CyclicBarrier: 循环栅栏• Semaphore: 信号灯CountDownLatch 类可以设置一个计数器,然后通过 countDown 方法来进行减 1 的操作,使用 await 方法等待计数器不大于 0,然后继续执行 await 方法之后的语句。原创 2023-09-15 14:30:36 · 75 阅读 · 0 评论