知识大全 Java2入门经典教程 11.2 管理线程[7]
Posted 知
篇首语:水往下流,人争上游。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java2入门经典教程 11.2 管理线程[7]相关的知识,希望对你有一定的参考价值。
Java2入门经典教程 11.2 管理线程[7] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
事件的次序如下
首先thread 启动 并对theobject步阻止任何其他线程对theobject调用任何方法
然后thread i调用sleep()使thread 可以启动
thread 启动并对theOtherObject同步 阻止任何其他线程对theOtherObject调用任何方法
然后thread 用sleep()允许thread 再次运行
threadl醒来并试着对theOtherObject用methord ( 但必须等到对theOtherObject同步的thread 中的代码完全执行完后才可以调用
再次运行thread 因为threadl不能继续 并试着调用theObject的method ()直至thread 的代码块完成执行过程才能继续 threadl ()是与theObject同步的
任何线程不可能继续进行杯去 发生了死锁 发现并纠正这类问题非常困难 特别是如果你的程序很复杂 并且有将继续执行的其他线程时
在最后的例子中 通过对main()的for循环中对一个账户设置同步 你也可以创建一个无价值的死锁 例如
synchronized accounts[ ]) for(int i= ;i<=transactionCount;i++) //code for generating transactions etc
一但accounts[ ]出现一个交易 死锁就会发生 因为在theBank对象中 用于处理交易并由一个Clerk对象调用的doTransaction()方法将针对同一对象同步并直到循环结束才能执行 当然 直到theBank对象中的方法结束循环才能继续 所以程序挂起
通常 确保你的程序没有潜在的死锁非常困难 如果你打算用线程编写大量程序 你需要比我们这里研究得更深入细致 这个方面的一本好书是由Doug Lea编写的<《java并行编程 设计原理和模式》(ISON )
cha138/Article/program/Java/gj/201311/27742相关参考
Java2入门经典教程11.2管理线程[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.2管理线程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.2管理线程[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.2管理线程[9] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.2管理线程[8] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.2管理线程[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.2管理线程[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.1了解线程[7] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.1了解线程[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java2入门经典教程11.1了解线程[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs