
编程思想
文章平均质量分 50
SJZYLC
这个作者很懒,什么都没留下…
展开
-
并发(6)死锁
一个对象可以有synchronized方法或者其他形式的加锁机制来防止别的任务在互斥还没有释放的时候就访问该对象,所以就会出现一种情况,A阻塞等待B,B阻塞等待C...Z阻塞等待A。五位哲学家,五双筷子,有时候思考,有时候就餐,就餐时需要两双筷子,当一个哲学家拿起两双筷子就餐时,另外一个人也需要就餐就需要等待筷子被放下。(4)必须有循环等待,一个任务等待其他任务所持有的的资源,后面的任务依赖这个任务的资源,最后的任务又依赖第一个任务持有的资源,使大家都被锁住。任务使用的资源至少有一个是不能共享的。原创 2022-10-04 21:29:01 · 273 阅读 · 1 评论 -
并发(5)线程之间的协作
多个任务之间运行,除了资源互斥之外,还需要一起协作去解决某个问题。当任务协作时,关键问题是这些任务之间的握手。为了实现这种握手,我们使用了相同的基础特性:互斥。在互斥之上,我们为任务添加一种途径,使其自身挂起,直至某些外部条件发生变化。原创 2022-09-25 19:15:36 · 325 阅读 · 0 评论 -
并发(4)终结任务
Java中如何终结线程任务以及检查中断。原创 2022-09-21 22:27:30 · 349 阅读 · 0 评论 -
并发(3)共享受限资源
共享受限资源原创 2022-09-09 09:16:54 · 307 阅读 · 0 评论 -
Java中的多线程
本文主要是个人对java多线程的了解。首先要清楚使用多线程的原因背景。目前的计算机都是多核处理,具有并行计算的能力,这为多线程提供了技术保障。在我们的程序处理中,一些原创 2021-05-29 15:48:08 · 141 阅读 · 0 评论 -
jvm监控
jvm监控的思路:通过定时拉取jvm的信息,然后收集起来,图表展示数据。jvm指标的获取:jvm指标获取 获取线程数 ManagementFactory.getThreadMXBean().getThreadCount() 非堆内存使用 ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage().getUsed() 非堆内存初始化 ..原创 2021-02-08 15:52:44 · 286 阅读 · 0 评论 -
BigDecimal使用过程中的问题记录
使用不当记录,不涉及原理性的分析。使用BigDecimal进行小数乘除运算,出来的结果不及预期。public static void test(){ BigDecimal oneHundred = new BigDecimal(100); BigDecimal percent = BigDecimal.valueOf(15.00); BigDecimal num1 = new BigDecimal(36.90).setScale(2, BigDeci原创 2021-02-06 07:39:54 · 292 阅读 · 2 评论 -
动态修改ThreadPoolExecutor线程池的参数大小
ThreadPoolExecutor作为java经济适用的线程池,在程序中应用很广。实际上在使用过程中会遇到一个问题,就是怎么设置它的线程数指标,一般是CPU*2,具体程序中执行起来不合适怎么调整?每次调整新上次线代价有点大,我们可以通过spring管理线程池的bean,那么里面的线程数都是通过spring配置进去的。可以通过后台设置,将属性值变更,然后通过bean实例的set方法更改线程数。方法有:setCorePoolSize、setMaximumPoolSize参考:htt..原创 2020-12-03 23:31:50 · 1248 阅读 · 0 评论 -
2020-10-10
增量很重要,因为吹牛逼的人都升上去了,那些踏实苦干的人心里肯定不爽。原创 2020-10-10 23:25:22 · 1648 阅读 · 0 评论 -
对切面进行异常处理的理解
切面对于同一处理异常有很大的便利性,经常在项目中用到。在系统开发中,切面应用于两层,一个是对外提供的Facade的层,一个是访问外部的rpc层,对这两层的处理都有都有异常捕获流程。facade由于是对外提供的接口,一般该接口会返回code值以及结果对象,调用方会根据code值判断接口执行的结果,以及异常情况,不应该通过异常捕获判断接口是否正常。所以,这一层的切面异常捕获,应该是一种兜底方案...原创 2020-04-02 11:39:06 · 2447 阅读 · 0 评论