设为首页 加入收藏

TOP

Java中传统的线程通信个人见解
2014-11-24 14:39:16 来源: 作者: 【 】 浏览:8
Tags:Java 传统 线程 通信 个人 见解

还有一个经验,把同步代码或在和锁放到共同使用的数据上,而不是放在线程内,这样的好处是什么呢:首先是更符合面向对象的思想。其次是这种设计结构非常容易实现线程的同步,并且增加线程访问共同数据的时候不用每次都在线程内增加同步代码。有利于扩展和维护。


首先看一个例子,子线程先循环10次,主线程再循环100次,接着子线程循环10次,主线程再循环100次,如此循环往复50次;


实现代码如下:


还有一点要注意的地方,就在判断是否等待的地方为什么用到while而不是if:原因是这样的,因为使用wait的时候有可能在没有调用notify的时候自己就唤醒了,开始去执行代码了,这叫做假唤醒。使用while就可以避免伪唤醒带来的灾难,还可以判断一下是否可以去执行代码。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇对Java面向对象的的理解 下一篇Java中多个线程访问共享数据的方..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: