知识大全 Java2入门经典教程 11.2 管理线程[9]

Posted

篇首语:忧劳可以兴国,逸豫可以亡身。。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java2入门经典教程 11.2 管理线程[9]相关的知识,希望对你有一定的参考价值。

Java2入门经典教程 11.2 管理线程[9]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    调用sleep()和调用wait(的主要不同之处是wait()释放当前线程对其加锁的任何对象 但是seep()不行 wait()按这种方式作很重要 否则另一个线程没办法改变以使当前线程要求的条件能被满足

    因此wait()有代表性的使用是     sychronized(anibject)        while(condition not met)    anobject wait();    //condition is met so continnue……   

    这里当wail()方法被调用时 这个线程将挂起操作直到针对同一对象的某个其他同步经调用notifyf()(或更有代表性的notifyAll()) 后者允许while环继续并再次检查条件 当然 这仍可以不被满足 在这种情况下wait()方法将再次被调用 因此另一个线程可以对anObject操作 从这点上你可以看到 wait()不只是为了得到一个对象的访问 直到满足某些条件时才允许其他线程访问 你甚至可以安排一个线程不能继续工作直到给定数量的其他线程对这个对象调用了notify()来确保实现最小数量的操作

    当你有多于两个的线程对一个对象同步时 最好用nntifyAll()而不用notify() 当两个或多个线程通过调用wait()挂起时 如果你调用notify() 只有其中一个线程被启动但不能直接控制它 这可能造成被启动的线程再次调用wait() 因为它要求的条件没被满足 这些将让所有的线程互相等待 不可能继续执行

    虽然这些方法每个功能都非常简单 但应用它们会变得非常复杂 通过使用synchronized方法和代码块的对象很有可能多个线程相互影响 我们通过看看如何使用wait()和notifyAll()去掉最后一个例子中的儿个while循环 探讨一些基本内容

    在银行程序中使用Wait()和notifyAll()

    在生成交易并将它们传递给Clerk对象的main()方法的for循环中 我们有两个对Clerk对象调用isBusy()方法的while循环 当职员仍然忙时 我们不能向职员传递交易通过改变Clerk类 为了使Clerk类可以使用wait()和notifyAll()我们去掉这个需求

Java 入门经典在线教程完整版 

cha138/Article/program/Java/gj/201311/27744

相关参考

知识大全 Java2入门经典教程 11.2 管理线程[3]

Java2入门经典教程11.2管理线程[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[2]

Java2入门经典教程11.2管理线程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[1]

Java2入门经典教程11.2管理线程[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[8]

Java2入门经典教程11.2管理线程[8]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[7]

Java2入门经典教程11.2管理线程[7]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[6]

Java2入门经典教程11.2管理线程[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[5]

Java2入门经典教程11.2管理线程[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[5]

Java2入门经典教程11.1了解线程[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[4]

Java2入门经典教程11.1了解线程[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[3]

Java2入门经典教程11.1了解线程[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs