第八章 线程与对象串行化
1. 下列关于JAVA中进程与线程的说法不正确的是:B
A.多线程是一个程序中的多个并发执行的程序流。
B.JAVA中一个应用程序运行后在系统中作为一个独立的线程。
C.多个线程在单个CPU的机器中运行时将分享CPU时间。
D.多线程机制可以提高程序的执行效率。
2.下列程序的功能是创建线程打印5行“HOW DO YOU DO!”,请阅读程序:
Public class ThreadTest
{
Public static void main(String args[])
{
Xyz xyz = new Xyz ();
( );
t.start();
}
}
Class Xyz implements Runnable
{
Int i;
Public void run()
{
While(i<5)
{
System.out.println(“How do you do!”+i++);
}
}
}
下列选择中能够填在下划线上使用程序正确运行的语句是:A.
A.Thread t=new Thread(xyz) B.Thread t=new Thread()
C.Thread t=new Xyz() D.Thread t=new Thread(Xyz)
3 阅读下列程序:
1 public class Try extends Thread
{
2 public static void main(String args[])
{
3 Try t=new Try();
4 t.start();
5 }
6
7 public void run(int j)
{
8 int i=0;
9 while(i<5)
{
10 System.out.println(“祝你成功!”+i++);
11 }
12 }
13 }
使程序创建一个线程打印5行“祝你成功!”,要求改正程序中的一行代码,选择正确的修改是:D
A. 将第一行的extendsThread改为implements Runnable
B. 将第三行的 new Try()改为new Thread()
C. 将第四行t.start()改为 start(t)
D. 将第七行的 public void run(int j)改为public void run()
4 阅读下列程序:
Class ThreadTest implements Runnable
{
Public static void main(String args[])
{
ThreadTest tt=new ThreadTest();
}
Public ThreadTest()
{
Thread tt=new Thread(this);
tt.start();
}
Public void run()
{
System.out.println(“A thread test, ”);
System.out.println(“printed from a thread.”);
}
}
对该程序而言,正确的结论是:D
A. 该程序将出现编译错误,编译器将提示变量tt 在main()方法和构造方法ThreadTest()中进行了重复定义。
B. 该程序可以通过编译,但不能正常运行,因为在构造方法中不能使用this关键字
C. 该程序将通过编译并可以运行,但将不能显示任何字符串
D. 该程序将通过编译并可以运行,运行结果是显示字符串:A thread test,printed from a thread.
5 提供notify()方法定义的类是:C
A. Thread B. Runnable C.Object D. Applet
6 下列关于线程调度的说法,不正确的是:C
A. 当前线程调用sleep()方法,可以使比其优先级的线程获得运行机会
B. 当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行
C. 当前线程调用yield()方法,会使比当前线程优先级低的线程获得运行机会
D. JAVA中线程的优先级可以由程序员进行设置
7 下列关于JAVA线程同步机制的说法正确的是:A
A. 在JAVA线程中,临界区可以是由synchronized 关键字标识的一个语句块或一个方法
B. 用synchronized 保护的共享数据的访问权限可以是public
C. 当在synchronized 标识的语句块或方法执行过程中出现异常,则线程仍将保留原有的对象锁
D. 对共享数据的所有操作,只要其中某些常用操作标识为临界区,就可以达到多线程并发控制的目的
8 线程生命周期中的状态包括:C
A. 新建状态、运行状态和终止状态
B.新建状态、运行状态、阻塞状态和终止状态
C.新建状态、可运行状态、运行状态、阻塞状态和终止状态
D. 新建状态、可运行状态、运行状态、阻塞状态、恢复状态、和终止状态
9 下列方法会使线程暂停运行的是:A
A.wait() B.notify() C.notify All() D synchronized()
10 下列关于对象串行化的说法不正确的是:C
A. 可以通过 ObjectOutputStream 类的 WriteObject()方法将对象写到一个文件中
B. 可以通过ObjectOutputStream类的 readObject()方法将一个文件中的对象读到内存中
C. JAVA中的对象都可以进行串行化
D. JAVA支持对象串行化的定制