通过继承Thread创建线程,在主控程序中同时运行两个线程Thread1和Thread2。请在下面横线处填入代码
第1题
第3题
A.创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值
B.创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值
C.使用FutureTask对象作为Thread对象的target创建并启动新线程
D.调用FutureTask对象的getValue()方法来获得子线程执行结束后的返回值
第4题
下面程序的主线程创建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());
}
}
第5题
当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceo Thread的值是【 】。
第6题
当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值是【 】。
第7题
A.进程(Process)是程序的一次执行过程
B.线程(Thread) 是比进程更小的执行单位
C.线程不可共享相同的内存单元
D.在同一个应用程序中可以有多个线程同时执行
第8题
A.public class X implements Runnable{public void run(){……}}
B.public class X extends Thread{public void run(){……}}
C.public class X extends Thread{public int run(){……}}
D.public class X implements Runnable{protected void run(){……}}
第9题
A.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行
B.一旦一个线程被创建,它就立即开始运行
C.如果复用一个线程,可以调用再次调用start方法,使已经结束的线程复活
D.join方法,可使当前线程阻塞,直到thread线程运行结束