知识大全 Java开发中多线程同步技巧[3]
Posted 条件
篇首语:好汉做事干到底,好马登程跑到头。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java开发中多线程同步技巧[3]相关的知识,希望对你有一定的参考价值。
Java开发中多线程同步技巧[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
为什么会出现这样的问题?这就是多线程中的同步的问题 在我们的程序中 Account中的amount会同时被多个线程所访问 这就是一个竞争资源 通常称作竞态条件 对于这样的多个线程共享的资源我们必须进行同步 以避免一个线程的改动被另一个线程所覆蓋 在我们这个程序中 Account中的amount是一个竞态条件 所以所有对amount的修改访问都要进行同步 我们将deposit()和withdraw()方法进行同步 修改为
public synchronized void deposit(float amt) float tmp = amount; tmp += amt; try Thread sleep( ); //模拟其它处理所需要的时间 比如刷新数据库等 catch (InterruptedException e) // ignore amount = tmp; public synchronized void withdraw(float amt) float tmp = amount; tmp = amt; try Thread sleep( ); //模拟其它处理所需要的时间 比如刷新数据库等 catch (InterruptedException e) // ignore amount = tmp;
此时 再运行 我们就能够得到正确的结果了 Account中的getBalance()也访问了amount 为什么不对getBalance()同步呢?因为getBalance()并不会修改amount的值 所以 同时多个线程对它访问不会造成数据的混乱 cha138/Article/program/Java/gj/201311/27674相关参考
Java开发中多线程同步技巧[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
Java多线程同步设计中使用Metux[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java中多线程之间可以通过接口来实现信息共享 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 提
Java的多线程-实现多线程及线程的同步 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一.实现
Java多线程同步具体实例讲解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java多线程同步
浅谈Java多线程的同步问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 多线程的同步依靠的是
Java多线程共享数据、同步、通信 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一线程共享数据
Java多线程锁如何进行数据同步共享 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java多线
单线程破解ip屏蔽比较容易只要拨号就行了 多线程抓取数据也比较容易但是引入多线程之后拨号就容易出现问题 多线程抓取的时候这个拨号就比较麻烦一点因为多线程拨号 会出现第一个线程拨号的时候第二个
Java多线程的同步示例及对象锁机制 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java