假设有如下语句:
定义类:
class Info
{
private int a;
...
}
定义两个线程:
class Pro implements Runnable
{
private Info ii=null;
...
}
class Con implements Runnable
{
private Info ii=null;
...
}
测试程序main():
{
...
Info i = new Info();
Pro pro = new Pro(i);
Con con = new Con(i);
new Thread(pro).start();
new Thread(con).start();
...
}
想问一下:有线程实例化的对象pro和con中他们的属性:(Info ii)共享吗?
------最佳解决方案--------------------
如果Pro和Con对应的构造函数是将i对象传给他们内部的ii对象的话,那么pro和con两个对象里的ii都是指向i,也就是说他们是一样的。
如果你认为他们一样就是“共享”的话,那么(Info ii)共享
------其他解决方案--------------------
嗯,是这样理解的~
------其他解决方案--------------------
Pro和Con的构造函数一样的,那是不是我在main函数里改为:
Info i = new Info();
Info ii = new Info();
Pro pro = new Pro(i);
Con con = new Con(ii);
那样对象pro中的(Info ii)和con中的(Info ii)由于是由不同的对象i和ii传入,所以他们不共享,能不能这么理解?
------其他解决方案--------------------
ok