java 多线程在什么样的情况下需要同步 具体案例见补充

有两个线程A和B线程A的run方法里对类C的实例对象中的成员域Vectorv(集合类v)中的每一个元素进行遍历读取每一个成员的信息,不作任何修改的操作线程B的run方法对... 有两个线程 A 和 B
线程A的run方法里对类C的实例对象中的成员域 Vector v(集合类v)中的每一个元素进行遍历读取每一个成员的信息,不作任何修改的操作
线程B的run方法对类C的实例对象(与上面的是同一个实例对象)中的成员域 Vector v中的每一个元素进行遍历,并会修改某些成员
问题: 这两个线程需要实现同步吗,没有同步会不会导致线程出错
上面是个例子 抽象出来的问题就一句话:两个线程用到同一个数据,其中一个只读不写,另一个且读且写,那么是否有必要实现同步(教程书上举的是两个线程都是且读且写的,所以有此一问)
展开
 我来答
匿名用户
2015-04-04
展开全部
老师说, 只要涉及到修改共享数据的都要考虑同步, 如果仅仅是查询, 但是不修改就不用同步, 比如取款和查看余额, 前者需要同步, 后者不用
追问
那只有两个线程同时运行一个取款一个查余额,怎么处理,可以都不加同步吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-04
展开全部
Vector类本身就是线程安全的,所以不用你自己加同步了。
追问
如果不是Vector 呢 比如处理其他无法实现线程安全的数据,只有两个线程,一个线程只读,一个线程修改数据,那两个可以都不加同步吗
追答
这个要考虑实际的应用,一般情况下一个线程只读,一个线程修改数据是可以不用同步的。但是如果读的数据也要求是准确的高的实时的同步数据,最好还是加上同步。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式