请完善程序(程序文件名:Java_2.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。 [题目要求] 在主线程中创建了一个线程,该线程休眠50ms,然后给变量i赋值。主线程要等该子线程结束后获

admin2012-03-21  31

问题 请完善程序(程序文件名: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) {  }
     }
    }

选项

答案(1)start (2)sleep

解析 题目要求中提到该线程休眠50ms,然后给变量赋值,所以此处应填让线程休眠的方法sleep。
   [程序解析] 本程序通过实现Runnable接口重写run()方法创建线程t。在此程序中用到了3个方法:
   (1) start()——刚创建的线程t不会自动运行,需要start方法把嵌入线程中的虚拟CPU置为可运行状态,意味着线程可被调度执行。
   (2) t.join()——使当前的线程等待,直到t结束为止,线程恢复到可运行状态。
   (3) sleep()——该方法使一个线程暂停一段固定时间。
转载请注明原文地址:https://kaotiyun.com/show/U62p777K
0

最新回复(0)