最近在iOS开发过程当中看别人的代码中有@synchronized修饰的属性,查找了一些相关的文档.将自己学到的一些东西写下来.
synchronized,英文释义问同步的,同步化的,同时发生的.
网上有说synchronized正确的使用时带有原子性与互斥性的效果,这可能就是同步化的英文释义的来源.其次,synchronized还能保证可见性.
synchronized主要用于两种情况:
1.synchronized在对象实例内,synchronized可以防止多个线程同时访问这个对象的synchronized方法.这时候,不同的对象实例里的synchronized方法是互不相干的.其他线程也可以同时访问一个类当中其对象实例的synchronized方法;
2.synchronized也可以用于限定某个类的范围,synchronized 防止多个线程同时访问这个类中的synchronized的方法.synchronized可以对类的所有对象实例起作用;
看到这两种情况之后我就联想到@synchronized修饰的属性,其实在某种意义上也是一种方法,也就是该属性,在调用时也可以保证其原子性与互斥性,同时保证其可见性.