[填空题] 通过继承Thread创建线程,在主控程序中同时运行两个线程Thread1和Thread2。请在下面横线处填入代码完成此程序。
public class ThreadTest
public static void main(String args[])
new TestThread("Threadl").start();
【7】
class TestThread extends Thread()
public TestThread(String str)
super (str);
public void run()
for(int i = 0; i<’5; i++)
System.out.println(i + .... + getName() + "在运行");
try
Sleep(1000);
catch(InerruptedException e)
System.out.println(getName() + "已结束");
正确答案:new TestThread(“Thread2”).start();
参考解析:程序中,类ThreadTest的main方法中生成了两个TestThread类的线程对象Thread1和Thread2,并在创建后马上调用start方法启动这两个线程。类TestThread是类Thread的子类,它首先定义了一个构造方法,调用父类的构造方法为线程对象命名。由于类Thread创建的线程不做任何事情(它的run()方法是空的),所以对于继承子类Thread的子类来说,必须重写run()方法。本例中,类TestThread中的第二个方法就是run()方法,它重写了类Thread中的run()方法。run()方法中是一个3次的循环,每次循环中,显示循环的次数和当前正在运行的线程的名字,然后休眠1000毫秒。运行程序的结果是两个线程的名字交替显示,每一个线程运行到输出语句时,将在屏幕上显示自己的名字,执行到sleep语句时将休眠1000毫秒。线程休眠时,并不占用CPU,其他线程可以继续运行。一旦延时完毕,线程将被唤醒,继续执行下面的语句。这样,就实现了交替显示。在循环结束后,显示“已结束”及线程表。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)