下面程序的主线程创建10个线程,它们都取变量的值,经累加后,将新值存回到变量且要求结果正确。
class MyResourceClass
int IntegerResource;
MyResourceClass()IntegerResource=0;
public int getInfo()return IntegerResource;
public void putInfo(int info)IntegerResource=info;
______Void sumResource(int q)
int LocalInteger;
LocalInteger=getInfo();
LocalInteger+=q;
putInfo(LocalInteger);
class MyMultiThreadClass implements Runnable
MyResourceClass UseInteger;
MyMultiThreadClass(MyResourceClass mrc)
UseInteger=mrc;
public void run()
for(int i=0;i<100;i++)
UseInteger. sumResource(50);
public class Class30
public static void main(String[] args)
MyResourceClass mrc=new MyResourceClass();
Thread aThreadArray[] =new Thread [10];
System. out. println(mrc. getInfo()) ;
System. out. println("wait... ");
for(int i=0;i<10;i++)
aThreadArray[i]=new Thread(new MyMultiThreadClass(mrc));
aThreadArray[i].______;
whileLoop;
while (true)
for(int i=0;i<10;i++)
if(aThreadArray[i].isAlive()) continue whileLoop;
break;
System. out. println("jieguo="+mrc.getInfo());
参考答案:synchronized
start()