同一个类,不同实例同时调用同一方法,有同步问题吗?

ALOSIN 发布于 2012/04/20 22:46
阅读 1K+
收藏 0
在多线程环境下,同一个类的方法,不同实例之间调用会出现同步问题吗?
加载中
0
红薯
红薯
方法是不会出现同步问题的,但如果方法访问了同一个类实例变量或者是某个静态变量就会产生同步问题。
0
中山野鬼
中山野鬼
同步问题只和资源有关。这个资源不是静态的代码。如@红薯 说的,同一个静态数据,你相同函数分属不同线程同时写读的,CPU也不会产生错误,会保证你代码执行的逻辑,这个逻辑是否你想要的,就要看你需要什么同步了。即便你两个不同的代码,在CPU的两个不同core里面跑,同时写一个内存地址,CACHE的机制也会在L2里面先锁定一个。然后更新,再share给另一个core 。也不会出错的。不然intel,amd白养那么多人了。
0
ALOSIN
ALOSIN
谢谢了
0
xinzaibing
xinzaibing
只要你不要有两个共享的同一个变量或者资源,就不会出现 数据不一致的问题
0
刘柳
刘柳
不同的对象调用有不同的调用堆栈,完全不相干。那怕是static方法也不会有问题(当然,如果使用了static属性,则要考虑是否同步)
0
曾老师

@红薯 ,一个类实例变量 是类变量还是实例变量 你是想说?不能混为一谈吧,?

静态变量 不就是类变量?

我特意找回我的密码 三年没等了,希望你 修正一下你的说法

返回顶部
顶部