码迷,mamicode.com
首页 > 其他好文 > 详细

关于解决 共享资源竞争

时间:2014-10-06 03:29:29      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:http   os   使用   文件   sp   2014   c   on   r   

共享资源一般是以对象的形式存在的内存片段,但也可能是文件,输入\输出端口,或者打印机。要控制对共享资源的访问,的先把它包装进一个对象。然后把所有要访问这个资源的方法标记为synchronized。如果某个人物处于一个对标记为synchronized的方法的调用中,那么在这个线程从该方法返回前,其他所有要调用类中任何标记为synchronized方法的线程都会被阻塞。

//中间这段为个人简单总结:

一个共享对象中所有标记为synchronzied的方法共享一个锁。一个线程可以多次获取对象的锁,比如:一个对象在同一个对象上的其他标记为synchronzied方法,后者又调用了同一个对象上的另一个方法。

注意:在使用并发时,将域设置为private是非常重要的,否则,synchronzied关键字就不能防止其他线程直接访问域,这样就会产生冲突。(现在终于有所体会,之前一直不明白为何要这么做。)

//总结结束


什么时候应该用同步呢? 可以使用Brian的同步规则:

如果你正在写一个变量,它可能接下来将会被另一个线程读取,或者正在读取一个上一次已经被另一个线程写过的变量,那么你必须使用同步,并且,读写线程都必须用相同的监视器同步。

上原文(照片喳喳的):

bubuko.com,布布扣


认识能够反应实践,同时也能够指导实践,正确的认识能够积极的推动实践的发展。


















关于解决 共享资源竞争

标签:http   os   使用   文件   sp   2014   c   on   r   

原文地址:http://my.oschina.net/u/1466553/blog/324457

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!