1、第7章 多线程并发编程一、单选题1、下列关于线程的描述中,错误的是( )。A.同一进程中不同线程的算法之间不能共享数据B.不同线程的算法之间是并发执行的C.一个进程可以包含多个线程D.同一线程的算法内部是串行执行的答案:A2、Java API为多线程并发编程提供了一个接口Runnable,该接口的作用是( )。A.将算法封装成一个可被线程运行的算法对象B.将算法封装成一个可独立运行的进程对象C.创建线程并在线程中运行算法对象D.创建进程并在进程中运行算法对象答案:A3、Java API为多线程并发编程提供了一个类Thread,该类的作用是( )。A.创建进程并在进程中运行算法对象B.创建线程并
2、在线程中运行算法对象C.将算法封装成一个可独立运行的进程对象D.将算法封装成一个可被线程运行的算法对象答案:B4、下列哪个方法是“可运行的”接口Runnable中定义的方法?( )A.start( )B.sleep( )C.setPriority( )D.run( )答案:D5、线程类Thread中将线程设为后台线程的方法是( )。A.setDaemon( )B.sleep( )C.setBackground( )D.yield( )答案:A6、下列关于多线程互斥操作的描述中,错误的是( )。A.多线程并发程序出现互斥操作重叠交叉执行的现象是因线程切换引起的B.Java虚拟机不能自动避免两个线
3、程中的互斥算法重叠交叉执行C.在单线程串行程序中也存在互斥操作重叠交叉执行的现象D.必须使用Java同步机制才能避免两个线程中的互斥算法重叠交叉执行答案:C7、下列关于同步方法的描述中,错误的是( )。A.同步方法不会与其他线程里的互斥方法重叠交叉执行B.不同线程中运行的同步方法修改同一个对象数据可能会导致错误的运行结果C.不同线程中运行的同步方法修改同一个对象数据不会导致错误的运行结果D.定义同步方法需使用关键字synchronized答案:B8、下列关于空转等待和死锁的描述中,错误的是( )。A.在用户看来,程序运行出现死锁就是程序长时间没有反应B.算法空转等待是因为执行算法的条件还没有满
4、足C.在用户看来,程序运行出现死锁就是程序出现错误,中途退出D.在同步方法中使用空转等待可能会产生死锁答案:C9、下列关于阻塞等待方法wait( )的描述中,错误的是( )。A.调用wait( )方法,当前线程会进入阻塞状态B.调用wait( )方法,当前线程会释放对象锁C.调用wait( )方法,进入阻塞状态的当前线程会在休眠一定时间后自动恢复运行D.阻塞等待方法wait( )只能在同步方法或同步语句中调用答案:C10、下列关于阻塞唤醒方法notifyAll( )的描述中,错误的是( )。A.调用notifyAll( )方法,会唤醒所有被当前线程所占用对象锁阻塞的线程B.阻塞唤醒方法notifyAll( )只能在同步方法或同步语句中调用C.调用notifyAll( )方法,会唤醒所有处于阻塞状态的线程D.执行notifyAll( )方法时,当前线程一定占用着某个对象的对象锁答案:C