
Java编程思想
文章平均质量分 62
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 评论 -
并发(2)基本的线程机制
由于线程的本质特性,异常可能逃出任务的run()方法,直到main()方法中。解决的方法是先建立一个实现Thread.UncaughtExceptionHandler的类MyHandler,在创建完任务后Thread t = new Thread(),将其附着在线程上,t.setUncaughtExceptionHandler(new MyHandler())。Future.get()是获取里面的结果,get()方法具有设置超时时间的机制,不设置则会一直等Future完成,即线程执行完后。......原创 2022-08-28 16:20:34 · 217 阅读 · 0 评论 -
并发(1)并发的多面性
并发解决的问题大体上可以分为速度、设计可管理性两种。原创 2022-08-22 07:41:55 · 138 阅读 · 0 评论