问题 单项选择题

关于下列代码编译或执行结果的描述中,正确是______。
public class Test
public static void main(String args[])
TestThread pm1=new TestThread("one");
pm1.start();
TestThread pm2=new TestThread("Tow");
pm2.start();


class TestThread extends Thread(
private String sTname="";
TestThread(String s)
sTname=s;

public void run()
for(int i=0;i<2;i++)
try
sleep(1000);
catch(InterruptedException e)()
System.out.println(sTname+…);


A.不能通过编译,TestThread类中不能定义变量和构造方法

B.输出One One Two Two

C.输出Tow One One Two

D.选项B或C都可能出现

答案

参考答案:D

解析: 该题考查线程的调度,线程的基本控制中,sleep()方法使一个线程暂停运行一段固定的时间。在休眠时间内,线程将不运行。由于线程的调度是按照线程的优先级的高低顺序进行的。当高优先级的线程不结束时,低优先级的线程将没有机会获得CPU。有时高优先级的线程需要与低优先级的线程进行同步,或需要完成一些费时的操作,则高优先级线程将让出CPU,使优先级低的线程有机会运行。高优先级线程可以在它的run()方法中调用sleep()方法来使自己退出CPU,休眠一段时间。休眠时间的长短由sleep()方法的参数决定。sleep()方法结束后,线程将进入可运行(Runnable)状态。由于线程的调度是根据CPU当时的运行状态决定因此各种情况都有可能发生。因此选择D。

问答题 简答题
填空题