本帖最后由 EDDY_Liang 于 2014-10-14 11:31 编辑
想要操作共享数据的话我知道的有两种。。一种时在类中之间把里面成员变量加上static 静态修饰。。这样这个变量就是存在于静态区中而不是在每个对象中了。。。你创建几个对象这个变量都只有共同的一个。
第二种。。把这个变量作为一个一个对象。。而这个对象中可以只有这个变量其他什么都没用。。然后把这个对象当作参数传入2两个线程中。。。因为操作的都是一个对象中的数据。。所以里面的数据就是共享数据。。但你同时要在线程的那个类里面创建这个对象类型的成员变量通过带有这个对象参数的构造函数对其进行初始化。
比如:
class Source{
int ticket = 100;
}
class Demo{
private Source; Demo( Source s){
this.Source = s;
}
void run(){
System.out.println(Source.ticket--);
}
}
Source s = new Source();
Demo d1 = new Demo(s);
Demo d2 = new Demo(s);
new thread(d1).start();
new thread(d2).start();
写了那么多希望你能懂,你可以把我的代码运行一下,这样可以看的更清楚
|