【java期末复习题】第13章 多线程

第13章 多线程

一、选择题
1.当线程调用wait()方法处于等待状态时,哪些方法可以让其恢复运行?( )多选
A.join()方法 B.run()方法 C.notify()方法 D.notifyAll()方法
2.对于如下代码,在A处使用哪个语句可以在新线程中输出Hello World?( )

public class Test implements Runnable {
    public void run() {
        System.out.println("Hello World");
    }
    public static void main(String[] args) {
        Test test = new Test();
        Thread thread = new Thread(test);
        // A
    }
}

A.test.run(); B.thread.run(); C.thread.start(); D.System.out.println(“Hello World”);

3.当编译和运行下列代码时会发生什么?( )

public class Test extends Thread {
    public void start() {
        for (int i = 0; i < 10; i++) {
            System.out.print(i + " ");
        }
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.run();
    }
}

A.编译错误,因为Test类中没有重写run()方法
B.运行错误,因为Test类中没有重写run()方法
C.正常运行,输出0 1 2 3 4 5 6 7 8 9
D.正常运行,输出为空

4.下列关于线程的哪些/个说法是正确的?( )
A.创建新线程只能通过继承Thread类
B.线程的名称可以用来区别线程
C.当仅有守护线程存在时,程序会退出执行
D.使用同步机制可以避免不同线程对同一数据修改时可能发生的数据损毁

5.如果下列代码能够正常运行,关于RunHandler类的哪些/个说法是正确的?( )

public class Test {
    public static void main(String[] args) {
        Thread thread = new Thread(new RunHandler());
    }
}

A.RunHandler类必须实现Runnable接口
B.RunHandler类必须继承Thread类
C.RunHandler类必须编写访问权限修饰符为public、返回值为void、参数为空的run()方法
D.RunHandler类必须编写init()方法

6.下面说法错误的是( )。
A.线程就是程序 B.线程是一个程序的单个执行流
C.多线程是指一个程序的多个执行流 D.多线程用于实现并发

7.下面哪个方法可以使线程从运行状态进入其他阻塞状态( )。
A.wait B.start C.sleep D.yield

8.下列说法中错误的一项是( )。
A. 一个线程是一个Thread类的实例
B. 线程从传递给纯种的Runnable实例run()方法开始执行
C. 线程操作的数据来自Runnable实例
D. 新建的线程调用start()方法就能立即进入运行状态

9.下列哪一个操作不能使线程从等待阻塞状态进入对象阻塞状态( )。
A. 等待阻塞状态下的线程被notify()唤醒
B. 等待阻塞状态下的纯种被interrput()中断
C. 等待时间到
D. 等待阻塞状态下的线程调用wait()方法

10.下面说法正确的是( )。
A.java中的线程是非抢占式的 B.java中的线程不可以共享数据
C.每个java程序都至少有一个线程,即主线程 D.java中的线程不可以共享代码

一、选择题答案
1CD	    2C     3D     4CD     5AC    6A    7C    8D    9D    10C

二、填空题
1. 使用Thread类的 方法启动新线程。

2. 在Runnable接口中定义的方法是 。

3. 编写同步方法时需要使用 关键字。

4. 使用Thread类的 方法可以让线程进入休眠状态并在一定的时间后自动唤醒。

5.查看线程名称的方法 。

6.在操作系统中,被称做轻型的进程是 。

7.线程的声明周期包括_________、、_________。

8.线程有执行的优先,优先级的范围是_________,默认值为_________,可以使用Thread类中_________方法来设定线程的优先级。

9.结束线程有两种情况,一种是_________,另一种是_________。

10、使用Thread类中的______________方法来设置一个线程为后台线程。

二、填空题答案
1start()
2run()
3synchronized
4sleep()
5getName()
6、线程
7、创建、可执行、非可执行、消亡。
81105setPriority()
9、自然消亡、强制死亡
10setDaemon()
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图欧学习资源库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值