• 第6 章 多线程程序设计答案


    一.选择题

    1.A   2.C   3.A   4.C   5.D   6.B   7.A   8.D   9 . C   10.B   11.C

    二.填空题

    1.  多线程     2.  操纵程序的数据          3. 被停止       4.  java.lang.Thread      5.  Runnable

    6.  并行   7.  线程体      8. 可运行状态       9. 并发    10. 寄存器     11. yield()      12.1, 10 ,任务越紧急        13. 临界资源, 临界代码    14.同步,互斥        15.  run(),start()

    三. 简答题

    1. (1) 定义类来实现Runnable接口
    class TestThread implements Runnable {
         public void run() { …}
    }

    (2)继承Thread类来实现
    class TestThread extends Thread {
        TestThread(String name) {
            super(name);
            start();
    }
    public void run() {…}

    }

    2.异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

    3. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
    finally是异常处理语句结构的一部分,表示总是执行。
    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

    4. sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

    5.启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

    四.程序阅读题

    1. 新建状态、可运行状态、阻塞状态、终止状态

  • 相关阅读:
    [论文阅读]VoxSet——Voxel Set Transformer
    verilator的第一个程序,注意流程和命令
    深入解析大数据分析:技术挑战、应用场景与未来趋势
    谷歌真的“不作恶”?前员工起诉:它早已亲手打破座右铭
    我用什么笔记软件?
    用户与权限linux篇
    JMeter入门教程(13) --事务
    如何写出有效的单元测试
    Kotlin学习之路(五):继承
    Neo4j之CQL基础
  • 原文地址:https://blog.csdn.net/qq_40086702/article/details/125410692