通过继承Thread创建线程,在主控程序中同时运行两个线程Thread1和Thread2。请在下面横线处填入代码
A.线程只能通过继承类Thread创建
B.执行suspend方法将使线程停止并不能被重新start
C.线程与进程实际是同一个概念
D.线程的终止可以通过两种方式实现:自然撤销或被停止
A.每一个Java线程可以看成由代码、一个真实的CPU以及数据三部分组成
B.创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题
C.Thread类属于java、util程序包
D.以上说法无一正确
下面程序的主线程创建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());
}
}
A.创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值
B.创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值
C.使用FutureTask对象作为Thread对象的target创建并启动新线程
D.调用FutureTask对象的getValue()方法来获得子线程执行结束后的返回值
当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值是【 】。
当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceo Thread的值是【 】。