java笔记:熟练掌握线程技术---基础篇之线程的协作和死锁的问题(下)
2012-01-15 04:29
537 查看
======================================================
注:本文源代码点此下载
======================================================
死锁的问题就是线程阻塞和同步结合时候所产生的毛病。因为线程可以被阻塞,并且对象具有同步控制方法来防止别的线程在锁没有被释放时候就访问该对象,那么当线程运行时候就会产生下面的问题:a在等待b执行完毕或者是等待b程通知自己被释放的时候,而b线程又等待别的线程,这样一直延伸下去,直到这个等待的线程链条上的某个线程又会等待第一个线程也就是a线程释放掉自己的锁,这就很像死循环了,线程之间相互等待互不相让,最终所有线程都无法执行了,这就是“死锁”。
谈到线程的死锁,就不得不提经典的死锁现象:哲学家就餐问题。哲学家就餐问题是计算机界著名的科学家艾兹格·迪科斯彻提出的,原问题是:有5名哲学家,这些哲学家花部分时间思考问题,部分时间就餐,当他们思考时候,不需要任何共享资源,但是当他们就餐时候,但是他们的餐桌旁只有有限的餐具,如果餐桌的食物是面条,那么一个哲学家需要两根筷子。但是哲学家们都很穷,因此他们只购买了5跟筷子,5跟筷子平分给5个哲学家,当一个哲学家就餐时候,该哲学家必须从他左边或者右边的哲学家里借到一根筷子,当借到筷子的哲学家就餐时候,被借筷子的哲学家就得等待了。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
注:本文源代码点此下载
======================================================
死锁的问题就是线程阻塞和同步结合时候所产生的毛病。因为线程可以被阻塞,并且对象具有同步控制方法来防止别的线程在锁没有被释放时候就访问该对象,那么当线程运行时候就会产生下面的问题:a在等待b执行完毕或者是等待b程通知自己被释放的时候,而b线程又等待别的线程,这样一直延伸下去,直到这个等待的线程链条上的某个线程又会等待第一个线程也就是a线程释放掉自己的锁,这就很像死循环了,线程之间相互等待互不相让,最终所有线程都无法执行了,这就是“死锁”。
谈到线程的死锁,就不得不提经典的死锁现象:哲学家就餐问题。哲学家就餐问题是计算机界著名的科学家艾兹格·迪科斯彻提出的,原问题是:有5名哲学家,这些哲学家花部分时间思考问题,部分时间就餐,当他们思考时候,不需要任何共享资源,但是当他们就餐时候,但是他们的餐桌旁只有有限的餐具,如果餐桌的食物是面条,那么一个哲学家需要两根筷子。但是哲学家们都很穷,因此他们只购买了5跟筷子,5跟筷子平分给5个哲学家,当一个哲学家就餐时候,该哲学家必须从他左边或者右边的哲学家里借到一根筷子,当借到筷子的哲学家就餐时候,被借筷子的哲学家就得等待了。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
相关文章推荐
- java笔记:熟练掌握线程技术---基础篇之线程的协作和死锁的问题(下)
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--前篇
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--中篇
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--下篇
- Android(java)学习笔记70:同步中的死锁问题以及线程通信问题
- Java笔记3 多线程<1>线程概述、多线程的创建、多线程的安全问题、静态同步函数的锁、死锁
- Java笔记1 : 在生产者消费者模式中,线程通信与共享数据,死锁问题与解决办法
- java笔记:熟练掌握线程技术---基础篇(上)
- 【java并发】线程技术之死锁问题
- JAVA学习笔记(1)_____模拟线程通信之生产者消费者问题
- Java线程(三):线程协作-生产者/消费者问题
- java笔记--关于线程死锁
- Java线程(三):线程协作-生产者/消费者问题
- 三、java多线程核心技术(笔记)——线程的优先级
- Java-J2SE学习笔记-线程-生产者消费者问题
- Java线程(三):线程协作-生产者/消费者问题
- Java线程:并发协作-死锁
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
- Java笔记六.线程同步、线程死锁
- Java线程(三):线程协作-生产者/消费者问题