Java多线程
文章平均质量分 95
耿子666
这个作者很懒,什么都没留下…
展开
-
并发编程-线程卡死问题实践
文章目录目标代码实践模拟线程卡死-代码请求发起类请求接受类分析优雅关闭线程的几种方式守护线程(不推荐)Future超时机制(推荐)状态一状态二状态三Thread的interrupt 中断策略尝试解决我们的问题(其实无法解决,具体看下列描述)实践请求接收类请求发起类测试总结目标线上线程卡死问题排查参考: Java并发编程(第十章,第四章)Future.get卡死,线程池的一个坑点 可以参考,注意点FutureTask的cancel方法真的能停止掉一个正在执行的异步任务吗 可以看下一个线原创 2021-07-12 23:04:19 · 1454 阅读 · 3 评论 -
并发编程-线程卡死问题排查与解决
目标线程卡死问题排查参考: Java并发编程(第十章,第四章)Future.get卡死,线程池的一个坑点 可以参考,注意点前言发现线程卡死的业务场景:有一个数据接口,因整个业务流程比较耗时,采用了异步形式。异步线程将业务数据存到数据库,并将数据发给Mq,在后续流程中再消费。在消费MQ数据时,会获取文件存储系统上的图片整合业务数据,生成PDF文件。这里通过异步处理,拆分各个业务,以此提升用户体验。问题发现和解决方式某日发现MQ 队列中出现消息堆积,有一百多条数据没有确认回执。程序开原创 2021-07-12 23:02:33 · 4677 阅读 · 0 评论 -
CountDownLatch
文章目录目标概念使用场景方法详情示例场景1场景2目标了解CountDownLatch参考:countDownLatchCountDownLatch的介绍和使用概念CountDownLatch 允许一个或多个线程等待其他线程完毕后再执行流程:通过一个计数器来设置需要完成的线程数,每个线程完成任务会让计数器减1,直到所有线程完成,计数器变0 。在让等待其他线程完成的线程再执行。使用场景通用的同步工具,将CountDownLatch初始化为1,可以看做一道门,其他线程都在原创 2020-11-24 23:12:04 · 195 阅读 · 0 评论 -
并发和并行
文章目录目标并发和并行问题对于多核cpu,java多线程是并发还是并行?知乎上的一些回答扩展目标了解并发和并行的区别参考:并发和并行AVA中的多线程能在多CPU上并行执行吗Java 多线程如何实现在多 CPU 上分布?使用多线程踩的“坑”——使用多线程真会使用CPU所有的内核吗? 这篇文章评测的是否使用多个内核的方式,有待考究,因为在第二个示例中,存在文件读写的情况,这种情况线程会切换,但是不一定线程会阻塞java线程与内核线程的关系,及怎么定义ThreadPoolExecutor相关参原创 2020-11-11 23:40:13 · 179 阅读 · 0 评论 -
阿里性能调优工具Arthas
文章目录目标Arthas简单使用其他其他诊断工具目标了解Arthas 性能调优工具参考: Arthas - Java 线上问题定位处理的终极利器spring-boot 速成(3) actuatorJVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)java性能监控利器ArthasArthas是一个Java诊断工具,支持JDK 6+,支持Linux/Mac/Winodws官方文档:https://alibab原创 2020-11-09 23:17:38 · 2234 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
转载于:https://www.cnblogs.com/dolphin0520/p/3920373.htmlJava并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile...转载 2018-12-20 15:48:27 · 11013 阅读 · 0 评论