黑马程序员技术交流社区

标题: 方法什么时候需要加synchronized? [打印本页]

作者: 黑马薛有义    时间: 2011-7-24 20:31
标题: 方法什么时候需要加synchronized?
一个类的两个方法同时操作一个成员变量的时候可能需要加同步,还有什么情况需要加同步呢?????
作者: 匿名    时间: 2011-7-24 20:44
在多线程的情况下需要用到,某一时刻只能一个线程进行操作并改变它的值,你就要用这个关键字来约束。来保证线程安全,例如,张老师在讲多线程的时候,讲过的铁路售票系统。
作者: 匿名    时间: 2011-7-24 21:19
标题: 关于多线程同步
应该是存在多线程安全问题的地方,都需要同步。如果程序没有多线程安全问题,就不应该使用同步技术,因为源程序调用同步方法,会调用额外的监视器检查,这样会降低运行效率。
作者: 匿名    时间: 2011-7-24 21:24
那取款机来说,如果它为每个帐户提供一个取钱方法和一个存钱方法,然后假设一个你和某个人同时用一个帐号去取款,这时如果存钱和取钱方法不实现synchronized的话很能你刚进去这个取钱方法里然后你的线程在cpu的时间到了轮换到另一个取钱的人,他也进入了这个方法,这样就有可能你们俩个都能用一个帐号取出钱来.当然如果那个帐号里面只有500大洋而你们俩个又同时取500的话是木有问题的.这样银行可定就亏了.所以类似这样的方法在多线程中就要用synchronized或用Lock 去实现同步 这样 如果一个线程进入了取钱方法中在轮换到其他线程时,那个线程就进不去这个方法直道进取方法的那个线程运行完.所以这样才能安全




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2