问题描述
如题,在类中定义了一个public公共变量,这个公共变量可写可读,当同时多人访问时,同时向这个变量写入值,这样会相互影响,相互冲突吗?谢谢!
解决方案
解决方案二:
会.不过你可以使用Lock来操作==
解决方案三:
不是static就没关系
解决方案四:
引用2楼hanjun0612的回复:
不是static就没关系
privatestringstr="abc";publicstringStr{get{returnstr;}set{str=value;}}就是这样子的,没有加static关键字,确定没有影响吗?
解决方案五:
引用3楼haiyunly的回复:
privatestringstr="abc";publicstringStr{get{returnstr;}set{str=value;}}就是这样子的,没有加static关键字,确定没有影响吗?
你这个代码不能说明什么。所谓“冲突”,是建立在并发的情况下。如果是实例对象中的变量,只要这个变量没有同时被访问的,是不存在这种问题的。要看对象是不是静态类的变量,有没有同时被访问的可能。还有这个“Str”,是值类型还是引用类型,都有关系。
解决方案六:
publicclassClass1{privatebyte[]str;publicbyte[]Str{get{returnstr;}set{str=value;}}}类就是这样的,赋值的时候是这样的:Class1myc=newClass1();mycc.Str=buf;得到值的时候是这样的:Class1myc=newClass1();byte[]buf=myc.Str;我的意思是在得到值的时候每个人得到的是自己赋的值,我怕就怕当其他人访问的时候把这个值改变了,是不是会影响自己得到的值?
解决方案七:
引用5楼haiyunly的回复:
publicclassClass1{privatebyte[]str;publicbyte[]Str{get{returnstr;}set{str=value;}}}类就是这样的,赋值的时候是这样的:Class1myc=newClass1();mycc.Str=buf;得到值的时候是这样的:Class1myc=newClass1();byte[]buf=myc.Str;我的意思是在得到值的时候每个人得到的是自己赋的值,我怕就怕当其他人访问的时候把这个值改变了,是不是会影响自己得到的值?
没关系的。放心
时间: 2024-09-20 05:44:17