关于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的构造函数一样的,那是不是我在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传入,所以他们不共享,能不能这么理解? [其他解释]