3个回答
展开全部
我们为什么要使用线程?
是因为我们需要独立的去操作对象,或者说资源。
你想想,不管是第一句的堆上相同的对象,还是第二句的相同的对象,都想强调了相同俩个字。说明多个线程存取的是同一个对象,同一个资源。而所谓严重的问题,可能有这样的情况:
线程A和线程B需要操作对象,对象可能有1和2两个属性,这时候线程A拿到了属性1 ,线程B拿到了属性2。
但是!!!线程A和B需要拿到全部的资源才能执行完操作,但是AB双方却都不愿意或者不能把自己的属性给对方,这时他们就僵持不下,这样下去就是一个死循环,就会造成死锁的问题。
不能完成操作,又不释放资源,你说严不严重。
所以才引入了为资源加锁的概念,让线程可以单独的操作资源。
完全手打!给分吧楼主!
顺便问一句,看的什么书,简单的问题描述得这么复杂,故弄玄虚。。。
是因为我们需要独立的去操作对象,或者说资源。
你想想,不管是第一句的堆上相同的对象,还是第二句的相同的对象,都想强调了相同俩个字。说明多个线程存取的是同一个对象,同一个资源。而所谓严重的问题,可能有这样的情况:
线程A和线程B需要操作对象,对象可能有1和2两个属性,这时候线程A拿到了属性1 ,线程B拿到了属性2。
但是!!!线程A和B需要拿到全部的资源才能执行完操作,但是AB双方却都不愿意或者不能把自己的属性给对方,这时他们就僵持不下,这样下去就是一个死循环,就会造成死锁的问题。
不能完成操作,又不释放资源,你说严不严重。
所以才引入了为资源加锁的概念,让线程可以单独的操作资源。
完全手打!给分吧楼主!
顺便问一句,看的什么书,简单的问题描述得这么复杂,故弄玄虚。。。
展开全部
堆上相同的对象应该是指一些类的实例对象,或者一些全局的变量。就是static定义的一些量。相同的对象(没有加堆上)应该就是一些普通的对象了,程序运行时生成的一些变量之类的,存放在程序栈里面的。我觉得这两句话说出来没什么意思。让人误解,就直接一句两个以上线程存取相同的对象会出现问题就OK了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-13
展开全部
多个线程,存取同一个对象、或堆中同一个对象,会有不可预料的后果(严重后果)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询