读书人

关于Runnable数据共享的小疑义

发布时间: 2013-01-11 11:57:35 作者: rapoo

关于Runnable数据共享的小疑问
假设有如下语句:
定义类:
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对应的构造函数是将i对象传给他们内部的ii对象的话,那么pro和con两个对象里的ii都是指向i,也就是说他们是一样的。
如果你认为他们一样就是“共享”的话,那么(Info ii)共享
Pro和Con的构造函数一样的,那是不是我在main函数里改为:
Info i = new Info();
……


嗯,是这样理解的~

读书人网 >Eclipse开发

热点推荐