多 线 程
一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。答案错选或未选者,该题不得分。)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.下列哪个方法可用于创建一个可运行的类?()
A.public 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(); } } |
A、2 4 6 B、3 5 7 C、3 6 9 D、2 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小时内删除。
发表评论