黑马程序员技术交流社区

标题: 同步代码块——查找安全问题(不理解哪些是共享数据) [打印本页]

作者: 刘 佳    时间: 2012-10-13 10:14
标题: 同步代码块——查找安全问题(不理解哪些是共享数据)
视频中提供了如何找问题的步骤

1,明确哪些代码是多线程运行代码
2,明确哪些是共享数据
3.明确多线程运行代码中哪些语句是操作共享数据的


对于第二条不是很理解,到底什么是共享数据??毕老师说一般成员都是共享数据?为什么?

作者: 王乐    时间: 2012-10-14 16:38
共享数据的确定是相对调用数据的对象而言的
就是说要确定哪些是共享数据首先要确定使用数据的对象

不是所有的成员都是共享数据,是毕老师视频中的那俩个成员       
private Bank b=new Bank();和 int sum=0;刚好是共享数据,所以他那么说

这个程序因为只创建了1个cus和bank对象。而两个线程都是对这同一个对象进行存储操作的,所以对这两个线程来说。对象B和变量SUM是他俩同时共享的

还有比如类中的静态变量对于所有使用该类创建的对象都是共享数据


个人理解。。。不对求指正
作者: 梁世喜    时间: 2012-10-14 16:58
我的理解为:一个对象中 被多个进程中函数操作的  属性  为共享数据。

如视频中Bank b=new Bank();

b中的sum为共享数据。


作者: 李建强    时间: 2012-10-14 17:01
本帖最后由 李建强 于 2012-10-14 17:29 编辑

一般同步代码块中,同时用到的资源。
一般成员都是共享数据只是这个例子而已





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