多 线 程   
                                                 
                                                                   
一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。答案错选或未选者,该题不得分。)50
1.下述哪个选项为真?( )
A.Error类是一个RoutimeException异常
B.任何抛出一个RoutimeException异常的语句必须包含在try块之内
C.任何抛出一个Error对象的语句必须包含在try块之内
D. 任何抛出一个Exception异常的语句必须包含在try块之内
2.下列关于Java线程的说法哪些是正确的?( )
A.每一个Java线程可以看成由代码、一个真实的CPU以及数据3部分组成
B.创建线程的两种方法,从Thread类中继承的创建方式可以防止出现多父类问题
C.Thread类属于java.util程序包
D.以上说法无一正确
3.哪个关键字可以对对象加互斥锁?( )
A.transient  B.synchronized  C.serialize  D.static
4.下列哪个方法可用于创建一个可运行的类?()
Apublic class X implements Runable { public void run() {……} }
B. public class X implements Thread { public void run() {……} }
C. public class X implements Thread { public int run() {……} }
D.public class X implements Runable { protected void run() {……} }
5.下面哪个选项不会直接引起线程停止执行?( )
A.从一个同步语句块中退出来
B.调用一个对象的wait方法
C.调用一个输入流对象的read方法
D.调用一个线程对象的setPriority方法
6.使当前线程进入阻塞状态,直到被唤醒的方法是( )
A.resume()方法  B.wait()方法  C.suspend()方法  D.notify()方法
7.运行下列程序,会产生的结果是(  )
public class X extends Thread implements Runnable {
public void run(){
System.out.println(this is run());
}
public static void main(String[] args)
{
  Thread t=new Thread(new X());
  t.start();
}
}
A.第一行会发生编译错误    B. 第六行会发生编译错误
C.第六行会发生运行错误    D.程序会运行和启动
8.java.lang.ThreadGroup类的作用为 (  )
A.使任何类都可以为线程提供线程体
B.定义了线程与交互的方法
C.提供了线程组或组中的每个线程进行操作的方法
D.以上都不是
9.实现线程的创建有(  )方法
A.一种 B. 两种  C.三种  D.四种
10.一个进程可以包含(  )个线程
A.一  B. 二  C. 三  D.四
11.Java中的线程模型包含(  )
A.一个虚拟处理机      B.CPU执行的代码 
C.代码操作的数据      D.以上都是
12.关于线程组以下说法错误的是(  )
A.在应用程序中线程可以独立存在,不一定要属于某个线程
B.一个线程只能创建时设置其线程组
C.线程组由java.lang包中的ThreadGroup类实现
D.线程组使一组线程可以作为一个对象进行统一处里或维护
13.下列定义线程方法正确的是(  )
A.Public Thread();
B.Public Thread(Runnable target);
C.Public Thread(ThreadGroup group,Runnable target);
D.以上都正确
14.以下不属于Thread类提供的线程控制方法是(  )
A.break()    B.sleep()      C.yield()    D.join()
15.下列关于线程的说法正确的是(  )
A.线程就是进程
B.线程在操作系统出现后就产生了
C.Soloris是支持线程的操作系统
D.在单处理器和多处理器上多个线程不可以并发执行
16.下列不属于线程生命周期状态的是(  )
A. 新建状态      B.可运行状态
C. 运行状态      D.解锁状态
17.以下不属于Thread类的线程优先级静态常量的是(  )
A.MIN_PRIORITY
B.MAX__PRIORITY
C.NORM__PRIORITY
D.BEST__PRIORITY
18.(  )关键字可以对对象加互斥锁。
A.synchronized  B.transient  C.serialize    D.static
19.下列(  )方法和resume()方法相互搭配,使线程停止执行,然后调用resume()方法恢复线程。
A.interrupt()    B.stop()    C.suspend()      D.yield()
20.Thread类的方法中,getName()方法的作用是(  )
A.返回线程组的名称      B.设置线程组的名称
C.返回线程的名称        D.设置线程的名称
21.线程调用了sleep()方法后,该线程将进入(  )状态
A.可运行状态    B.运行状态    C.阻塞状态      D.终止状态
22.下列(  )类或接口定义了线程同步与交互的方法。
A.Thread    B.Runnable    C.Object      D.ThreadGroup
23.Java中线程是由线程类的(  )方法定义的。
A.init()  B.run()    C.application()    D.main()
24.线程控制方法中,stop()的作用是(  )
A.强行终止线程
B.使比其低的优先级线程运行
C.只让给同优先级运行
D.返回当前线程的引用
25.在以下(  )情况下,线程就进入可运行状态。
A.线程调用了sleep()方法时
B.线程调用了join()方法时
C.线程调用了yield()方法时
D.以上都是
26.下列说法中,正确的一项是(   
A.单处理机的计算机上,2个线程实际上不能并发执行
B.单处理机的计算机上,2个线程实际上能够并发执行
C.一个线程可以包含多个进程
D.一个进程可以包含多个线程
27.下列说法中错误的一项是(   
A.线程就是程序
B.线程是一个程序的单个执行流
C.多线程是指一个程序的多个执行流
D.多线程用于实现并发
28.下列关于Thread类的线程控制方法的说法中错误的一项是(   
A.线程可以通过调用sleep()方法使比当前线程优先级的线程运行
B.线程可以通过调用yield()方法和当前线程优先级一样的线程运行
C.线程sleep()方法调用结束后,该线程进入运行状态
D.若没有相同优先级的线程处于可运行状态,县城调用yield()方法时,当前线程将继续执行
29.下列程序的输出结果是(   
package st.www;
class C6 implements Runnable{
    public void run() {
        for(int a=3;a<=10;a++){
            if(isPrime(a))
                System.out.print(a+"\t");
        }
    }
    public boolean isPrime(int n){
        boolean b=true;
        for(int i=2;i<n-1&&b;i++){
            if((n%i)==0)
                b=false;
        }
        return b;
    }
   
}
public class Test6{
    public static void main(String args[]){
        Thread t=new Thread(new C6());
        t.start();
    }
}
A2  4  6  B3  5  7  C3  6  9  D2  5  8
30.下列哪一个操作不能使线程从等待阻塞状态进入对象锁阻塞状态?
A.等待阻塞状态下的线程被notify()唤醒
B.等待阻塞状态下的线程被interrput()中断
C.等待时间到
D.等待阻塞状态下的进程调用wait()方法
31.下列哪一个方法可以使线程从运行状态进入其他阻塞状态?
A.  sleep() B.  wait()  C.  yield() D.  start()
32.下列哪一个不属于Java线程模型的组成部分?
A.虚拟的CPU
B.虚拟CPU执行的代码
C.代码所操作的数据
D.执行流
33.下列程序的输出结果是(    )。
public class Test {
    public static void main(String args[]) {
        new Test();
    }
    Test() {
        Test t1 = this;
        Test t2 = this;
        synchronized (t1) {
            try {
                t2.wait();
                System.out.println("DONE WAITING");
            } catch (InterruptedException e) {
                System.out.println("INTERRUPTED");
            } catch (Exception e) {
                System.out.println("OTHER EXCEPTION");
            } finally {
                System.out.println("FINALLY");
            }
        }
        System.out.println("ALL DONE");
    }
}
A.输出ALL DONE
B.一个线程可以包含多个进程输出INTERRUPTED
C.输出DONE WAITING
D.编译通过,但是不输出任何字符串
34.下列哪一种情况一定不会使当前的 线程暂停执行?( 
A.该线程抛出一个InterruptedException
B.该线程调用sleep()方法
C.该线程创建一个新的子线程

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。