请完善程序(程序文件名:Java_2.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。
[题目要求]
在主线程中创建了一个线程,该线程休眠50ms,然后给变量i赋值。主线程要等该子线程结束后获得并输出i的值,使程序的输出结果如下:
j=10,a.i=10
源程序:
public class Java_2 {
public static void main(String args[]) {
try {
Sleep a=new Sleep();
Thread t=new Thread(a);
t. (1) ();
t.join();
int J=a.i;
System.out.println("j="+j+",a.i="+a.i);
} catch(Exception e) {}
}
}
class Sleep implements Runnable {
int i;
public void run() {
try {
Thread. (2) (50);
i=10;
} catch(InterruptedException e) { }
}
}
参考答案:sleep
解析: 题目要求中提到该线程休眠50ms,然后给变量赋值,所以此处应填让线程休眠的方法sleep。 [程序解析] 本程序通过实现Runnable接口重写run()方法创建线程t。在此程序中用到了3个方法: (1) start()——刚创建的线程t不会自动运行,需要start方法把嵌入线程中的虚拟CPU置为可运行状态,意味着线程可被调度执行。 (2) t.join()——使当前的线程等待,直到t结束为止,线程恢复到可运行状态。 (3) sleep()——该方法使一个线程暂停一段固定时间。