`

共享资源

 
阅读更多

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

     对于某个特定对象来说,其所有synchronized方法共享同一个锁。在使用并发时,将域设置成private是非常重要的,否则,synchronized关键字就不能防止其他任务直接访问域。

     每当这个相同的任务在这个对象上获得锁时,计数都会递增。显示,只有首先获得了锁的任务才能允许继续获得多个锁。每当任务离开一个synchronized方法,计数递减,当技术为零的时候,锁被完全释放,此时别的任务就可以使用此资源。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics