判断题

1.线程可以用 yield使同优先级的线程先执行。( )
2.线程t1中执行t2.sleep(5000)语句,则线程t2休眠5s( )
3.线程t运行就是运行其run()方法,所以t.start()等价于t.run() ( )
4.如果有高优先级的线程就绪,则正在执行的低优先级线程将暂停执行。( )
5.线程运行中调用 sleep方法进人阻塞状态, sleep结束后线程马上处于运行( running)的状态。 ( )
6.多个线程的运行顺序一定是按线程启动的顺序进行的。( )
7.run方法是运行线程的主体,若run方法运行结束,线程就消亡了( )
8.Java线程设计中, notify()方法会激活在等待集中的所有线程。 ( )
9.每个Java线程的优先级都设置在常数1~12,默认的优先级设置为常数6。()
10.一个线程对象的具体操作是由run()方法的内容确定的,但是 Thread类的run()方法是空的,其中没有内容;所以用户的线程程序要么派生一个 Thread的子类并在子类里重新定义run()方法,要么使一个类实现 Runnable接口并覆盖run()方法。 ( )
11.语句mt.setpriority(10)将线程对象mt的优先级设置为10。 ( )
12.某程序中的主类不是 Thread的子类,也没有实现 Runnable接口,则这个主类运行时不能控制其他线程睡眠。( )
13. sleep()和wait()方法都使当前运行线程放弃处理器和它所占用的同步资源管理。 ( )
14.挂起、阻塞或等待的线程都能够恢复运行,但是停止运行的线程将不可能再复生。 ( )
15.线程使用 sleep()方法休眠后,可以用 notify()方法唤醒.( )

选择题

1.在java程序中,下列关于线程的说法错误的是()
A.run方法是运行线程的主体
B.多个线程运行时执行顺序是按顺序执行的
C.如果run方法执行结束了,说明线程死亡了
D.在Java中,高优先级的可运行线程会抢占低优先级线程
2.下面哪个方法可以在任何时候被任何线程调用?( )
A.notify()
B.wait()
C.notifyAll()
D.sleep()
3.下面哪个方法是实现Runnable接口所必须的?( )
A.wait()
B.run()
C.sleep()
D.notify()
4.Thread类用来创建和控制线程,启动一个线程应该使用下面的哪个方法?()
A.init()
B.start()
C.run()
D.notifyAll()
5.下面关于Java中线程的说法不正确的是()。
A.调用join()方法可能抛出异常 InterruptedException
B. sleep()方法是 Thread类的静态方法
C.调用 Thread类的 sleep()方法可终止一个线程对象
D.线程启动后执行的代码放在其run方法中
6.给Java线程设定优先级的成员方法是()。
A. getPriority()
B. setPriority()
C. getTread()
D. setTread()
7.下列哪个情况可以终止当前线程的运行而无法恢复?()
A.抛出一个异常对象时
B.当该线程调用seep()方法时
C.当创建一个新线程时
D.当一个优先级高的线程进入就绪状态时
8.以下关于线程的说法错误的是()
A. Thread类的构造方法以实现 Runnable接口的类的对象作为参数来创建线程
B.线程是按优先级调度执行的,高优先级的线程会被优先执行
C.多线程同步处理的目的是为了让多个线程协调地并发工作
D.多个线程并发执行时,线程的相对执行顺序是按线程启动的顺序来执行的
9.某线程调用 sleep方法,休眠结束后,将进入()状态。
A. Blocked(阻塞)
B. Runnable(可运行或就绪)
C. Running(运行)
D.Dead(消亡)

程序阅读题

1.写出下面程序代码的运行结果

public class Timer extends Thread{  
  int time=0;
  public Timer(int time){
    this.time=time;
  }
  public void run(){
    try{
      for(int i=1;i<=time;i++){
        Thread.sleep(1000);
        System.out.print(i+" ");
      }
    }
    catch(Exception e){
      System.out.println(e.toString());
    }
  }
  public static void main(String args[]){
    Timer timer=new Timer(5);
    timer.start();
  }
}

答案

判断题

TTFTF FTFFT TFTTF

选择题

1-10 BDBBC BADB

程序阅读题

1.在屏幕上每隔1s输出一个数字,最后输出1 2 3 4 5

注:本博客内容节选自高飞编著的Java程序设计实用教程习题集 ,详细内容请参阅书籍。