首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

线程同步总结(2)

2012-11-17 
线程同步小结(2)???? ? ? ? ?(一) ? ? ?为什么要用到Synchronized同步机制呢??? ? ?线程的同步是为了防止

线程同步小结(2)

??

?? ? ? ? ?(一) ? ? ?为什么要用到Synchronized同步机制呢?


?? ? ?线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。当用多个线程对象访问一个共享数据的时候,会由于对线程的控制不加控制而导致出现不合理的情况。

?? ? ? 例如:两个线程ThreadA、ThreadB 都操作同一个对象Data 对象,并修改Data对象上的数据。?


???运行结果是:


?? ?这样的运行结果是:

public synchronized int plus(int y){x = this.x + y;return x;}

?? 运行结果同上!

???

?? ? ? ? ? ? ? ? ? ? ? (三)那么何时需要同步呢?


?? ? ? ?1. 在多个线程同时访问互斥(可交换)数据时,应该同步以保护数据,确保两个线程不会同时修改更改它。

?? ? ? ?2.对于非静态字段中可更改的数据,通常使用非静态方法访问。

?? ? ? ?3.对于静态字段中可更改的数据,通常使用静态方法访问。

?? ? ? ?4.如果需要在非静态方法中使用静态字段,或者在静态字段中调用非静态方法,问题将变得非常复杂。留在后边解决。


?? ? ? ? ?注意:用线程同步必须搞清楚synchronized锁定的是哪个对象!

热点排行