电气工程
会计论文
金融论文
国际贸易
财务管理
人力资源
轻化工程
德语论文
工程管理
文化产业管理
信息计算科学
电气自动化
历史论文
机械设计
电子通信
英语论文
物流论文
电子商务
法律论文
工商管理
旅游管理
市场营销
电视制片管理
材料科学工程
汉语言文学
免费获取
制药工程
生物工程
包装工程
模具设计
测控专业
工业工程
教育管理
行政管理
应用物理
电子信息工程
服装设计工程
教育技术学
论文降重
通信工程
电子机电
印刷工程
土木工程
交通工程
食品科学
艺术设计
新闻专业
信息管理
给水排水工程
化学工程工艺
推广赚积分
付款方式
首页
|
毕业论文
|
论文格式
|
个人简历
|
工作总结
|
入党申请书
|
求职信
|
入团申请书
|
工作计划
|
免费论文
|
合作期刊
|
论文同学网
|
全站搜索
搜索
高级搜索
当前位置:
论文格式网
->
毕业论文
->
计算机论文
JAVA多线程探讨(二)
本论文在
计算机论文
栏目,由
论文格式
网整理,转载请注明来源
www.lwgsw.com
,更多论文,请点
论文格式范文
查看
(1)产生死锁的原因主要是
1.因为系统资源不足。
2.进程运行推进的顺序不合适。
3.资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。
其次,进程运行推进顺序与速度不同,也可能产生死锁。 以多线程:两个线程为例:
第一个线程(Thread1),锁住了一个对象(Object1),另一个线程(Thread2)也同时锁住了另一个对象(Object2)
这时,第一个线程(Thread1),经过一段时间操作需要Object2来继续执行,但是Object2被Thread2锁定,不能为
Thread1所用,这时Thread2,经过一段时间需要使用Object1来继续执行,但是Object1被Thread1锁定,不能为
Thread2所用.这样就形成了资源互锁,出现了死锁状态。
(2)产生死锁的四个必要条件
互斥条件:一个资源每次只能被一个进程使用。
请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
(3)死锁的解决方法
让所有的线程按照同样的顺序获得一组锁。这种方法消除了 A和 B的拥有者分别等待对方的资源的问题。
将多个锁组成一组并放到同一个锁下。前面Java线程死锁的例子中,可以创建一个容器对象的锁。于是在获得A或B之前都必须获得这个容器的锁。将那些不会阻塞的可获得资源用变量标志出来。当某个线程获得容器对象的锁时,就可以通过检查变量来判断是否整个容器集合中的对象锁都可获得。如果是,它就可以获得相关的锁,否则,就要释放掉容器这个锁并稍后再尝试。
编写代码可预防死锁,如:
Volatile 变量,volatile 关键字是 Java 语言为优化编译器设计的。
.class VolatileTest {
.public void food() {
.boolean flag = false;
.if(flag) {
.//
this could happen
}
}
}
一个优化的编译器可能会判断出if部分的语句永远不会被执行,就根本不会编译这部分的代码。如果这个类被多线程访问, flag被前面某个线程设置之后,在它被if语句测试之前,可以被其他线程重新设置。用volatile关键字来声明变量,就可以告诉编译器在编译的时候,不需要通过预测变量值来优化这部分的代码。
无法访问的Java线程死锁有时候虽然获取对象锁没有问题,线程依然有可能进入阻塞状态。在 Java 编程中IO就是这类问题最好的例子。当线程因为对象内的IO调用而阻塞时,此对象应当仍能被其他线程访问。该对象通常有责任取消这个阻塞的IO操作。造成阻塞调用的线程常常会令同步任务失败。如果该对象的其他方法也是同步的,当线程被阻塞时,此对象也就相当于被冷冻住了。
其他的线程由于不能获得对象的Java线程死锁,就不能给此对象发消息(例如,取消 IO 操作)。必须确保不在同步代码中包含那些阻塞调用,或确认在一个用同步阻塞代码的对象中存在非同步方法。尽管这种方法需要花费一些注意力来保证结果代码安全运行,但它允许在拥有对象的线程发生阻塞后,该对象仍能够响应其他线程。
首页
上一页
1
2
下一页
尾页
2
/2/2
上一篇
:
Java和.net与我的碰撞
下一篇
:
人事综合管理系统
Tags:
JAVA
线程
探讨
【
收藏
】 【
返回顶部
】
会计论文
电子机电论文
金融论文
电气自动化论文
模具设计
化学工程与工艺
机械设计
电子通信论文
英语论文
行政管理论文
物流论文
电子商务论文
法律论文
国际贸易论文
财务管理论文
人力资源论文
市场营销论文
土木工程论文
工商管理论文
工程管理论文
汉语言文学论文
教育管理论文
测控专业论文
交通工程论文
旅游管理论文
新闻专业论文
艺术设计
教育技术学论文
应用物理学论文
轻化工程论文
德语专业论文
给水排水工程
服装设计与工程
食品生物技术
材料科学与工程
电视制片管理
工业工程论文
文化产业管理
包装工程论文
印刷工程论文
信息管理论文
制药工程论文
生物工程论文
电子信息工程
信息计算科学
电气工程论文
通信工程论文
动物医学毕业论文
生物医学工程
医疗保险实务
水文与水资源工程
书法专业毕业论文
财务会计毕业论文
电子商务毕业论文
现代教育技术
信息管理专业
心理学专业
数学与应用数学
数学教育
护理学毕业论文
其他专业论文
历史学论文
学前教育毕业论文
小学教育毕业论文
教育管理毕业论文
法律专业毕业论文
汉语言文学毕业论文
工商管理毕业论文
人力资源毕业论文
营销专业毕业论文
物流专业毕业论文
计算机论文