![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
文章平均质量分 54
SJZYLC
这个作者很懒,什么都没留下…
展开
-
并发(6)死锁
一个对象可以有synchronized方法或者其他形式的加锁机制来防止别的任务在互斥还没有释放的时候就访问该对象,所以就会出现一种情况,A阻塞等待B,B阻塞等待C...Z阻塞等待A。五位哲学家,五双筷子,有时候思考,有时候就餐,就餐时需要两双筷子,当一个哲学家拿起两双筷子就餐时,另外一个人也需要就餐就需要等待筷子被放下。(4)必须有循环等待,一个任务等待其他任务所持有的的资源,后面的任务依赖这个任务的资源,最后的任务又依赖第一个任务持有的资源,使大家都被锁住。任务使用的资源至少有一个是不能共享的。原创 2022-10-04 21:29:01 · 242 阅读 · 1 评论 -
并发(5)线程之间的协作
多个任务之间运行,除了资源互斥之外,还需要一起协作去解决某个问题。当任务协作时,关键问题是这些任务之间的握手。为了实现这种握手,我们使用了相同的基础特性:互斥。在互斥之上,我们为任务添加一种途径,使其自身挂起,直至某些外部条件发生变化。原创 2022-09-25 19:15:36 · 285 阅读 · 0 评论 -
并发(4)终结任务
Java中如何终结线程任务以及检查中断。原创 2022-09-21 22:27:30 · 315 阅读 · 0 评论 -
并发(3)共享受限资源
共享受限资源原创 2022-09-09 09:16:54 · 270 阅读 · 0 评论 -
并发(2)基本的线程机制
由于线程的本质特性,异常可能逃出任务的run()方法,直到main()方法中。解决的方法是先建立一个实现Thread.UncaughtExceptionHandler的类MyHandler,在创建完任务后Thread t = new Thread(),将其附着在线程上,t.setUncaughtExceptionHandler(new MyHandler())。Future.get()是获取里面的结果,get()方法具有设置超时时间的机制,不设置则会一直等Future完成,即线程执行完后。......原创 2022-08-28 16:20:34 · 192 阅读 · 0 评论 -
并发(1)并发的多面性
并发解决的问题大体上可以分为速度、设计可管理性两种。原创 2022-08-22 07:41:55 · 100 阅读 · 0 评论 -
Java中的多线程
本文主要是个人对java多线程的了解。首先要清楚使用多线程的原因背景。目前的计算机都是多核处理,具有并行计算的能力,这为多线程提供了技术保障。在我们的程序处理中,一些原创 2021-05-29 15:48:08 · 119 阅读 · 0 评论 -
jdk8的parallemStream与ArrayList
jdk8中增加很多新的特性,parallemStream就是其中一个。parallemStream是流式并行处理,而ArrayList是线程不安全的,他俩在一起免不了出问题。主要有两种问题:1、ArrayList中的数据不准2、数组越界异常java.lang.ArrayIndexOutOfBoundsException示例:todo原因:todo解决:1、不用并行流;2、但是你非想要并行流提升效率,那就别用ArrayList,换成一个线程安全的List,如Cop.原创 2020-12-29 10:25:23 · 259 阅读 · 0 评论 -
动态修改ThreadPoolExecutor线程池的参数大小
ThreadPoolExecutor作为java经济适用的线程池,在程序中应用很广。实际上在使用过程中会遇到一个问题,就是怎么设置它的线程数指标,一般是CPU*2,具体程序中执行起来不合适怎么调整?每次调整新上次线代价有点大,我们可以通过spring管理线程池的bean,那么里面的线程数都是通过spring配置进去的。可以通过后台设置,将属性值变更,然后通过bean实例的set方法更改线程数。方法有:setCorePoolSize、setMaximumPoolSize参考:htt..原创 2020-12-03 23:31:50 · 1101 阅读 · 0 评论