Java 线程部分习题及解析

12 篇文章 1 订阅
9 篇文章 10 订阅

1、下列关于线程的说法中,错误的是( )
A、线程就是程序
B、线程是一个程序的单个执行流
C、多线程用于实现线程并发程序
D、多线程是指一个程序的多个执行流

进程是一个应用程序,线程是比程序更小的执行单位
一个进程在执行中可以产生多个线程

2、下列关于进程和线程的说法中,错误的是( )
A、操作系统中每个独立执行的程序都可称之为一个进程
B、操作系统中的每一个进程中都至少存在一个线程
C、线程和进程一样,是由CPU轮流执行的
D、线程和进程一样,是由CPU同时执行的

由于CPU运行速度很快,能在极短的时间内在不同的进程之间进行切换,所以给人以同时执行多个程序的感觉。线程也是一样的

1、下列关于Thread类的说法中,错误的是( )
A、继承Thread类创建线程的方式可以防止出现多父类问题
B、Thread类属于java.util包
C、继承Thread的方式定义线程后,覆写的run()方法会在该线程的start()方法被调用后被JVM自动运行
D、继承Thread的方式定义线程后,你不能在继承其他的类了,导致程序的可扩展性大大降低

Thread类属于java.lang包

1、以下关于Runnable接口的描述错误的是( )
A、通过实现Runnable接口可以创建多线程程序
B、Runnable接口是在java.lang包下
C、实现Runnable接口必须重写run()方法
D、通过Runnable接口中的start()方法可以开启线程

首先,接口是没有方法的。其次,start()方法是属于Thread的。

1、下列有关线程的创建方式说法错误的是( )
A、通过继承Thread类与实现Runnable接口都可以创建多线程程序
B、实现Runnable接口相对于继承Thread类来说,可以避免由于Java的单继承带来的局限性
C、通过继承Thread类与实现Runnable接口创建多线程这两种方式没有区别
D、大部分的多线程应用都会采用实现Runnable接口方式创建

1、下列关于Java后台线程的描述,错误的是()
A、对Java程序来说,只要还有一个前台线程在运行,这个进程就不会结束
B、如果某个线程对象在启动之前调用了setDaemon(false)语句,这个线程就变成一个后台线程
C、在start()方法执行后,使用setDaemon(true)可以将线程设置为后台线程
D、只要进程中不存在前台线程,整个进程就会结束

对于java来说,只要还有一个前台线程在运行,这个进程就不会结束,如果一个进程中只有后台线程运行,这个进程就会结束。
要将某个线程设置为后台线程,必须在该线程启动之前,也就是说setDaemon()方法在start方法之前调用,否则会引发IllegalThreadStateException异常。

1、notify()方法作用是( )
A、唤醒线程
B、导致线程等待
C、线程休眠
D、结束线程

2、
下列关于线程状态转换的描述中,错误的是( )
A、死亡状态下的线程调用start()方法可以使其重新进入就绪状态
B、运行状态下的线程调用wait()方法可以使其进入到等待状态
C、线程获得CPU使用权后会从就绪状态转换成运行状态
D、线程失去CPU使用权后会从运行状态转换成就绪状态

一旦进入死亡状态,线程将不再拥有运行的资格,也不能在转换到其他状态。

3、wait()方法作用是( )
A、唤醒线程
B、导致线程等待
C、线程休眠
D、结束线程

1、下列关于线程优先级的描述,错误的是( )
A、NORM_PRIORITY代表普通优先级,默认值是5
B、一般情况下,主函数具有普通优先级
C、新建线程的优先级默认为最低
D、优先级高的线程获得先执行权的几率越大

2、线程的优先级用1-10之间的整数表示,默认的优先级是( )
A、1
B、10
C、3
D、5

1、下列关于Thread类中sleep()方法的描述,错误的是( )
A、sleep()可以指定线程休眠的时间
B、sleep()方法指定时间结束后,线程进入了运行状态
C、sleep()是一个静态方法
D、调用sleep()方法,线程进入阻塞状态

sleep()方法使线程进入阻塞状态,指定时间结束后,线程进入了就绪状态

2、JAVA中调用Thread类的sleep()方法后,当前线程状态如何转换( )
A、由运行状态进入阻塞状态
B、由运行状态进入等待状态
C、由阻塞状态进入等待状态
D、由阻塞状态进入运行状态

1、下面关于yield方法描述正确的是( )
A、yield方法是用于合并线程
B、yield方法是用于启动线程
C、yield方法是用于线程让步
D、yield方法是用于线程同步

2、下列方法中,可以实现线程让步的是( )
A、sleep()
B、wait()
C、yield()
D、join()

3、关于Thread类yield()方法的作用,下列描述中正确的是( )
A、使线程由运行状态进入阻塞状态
B、使线程由运行状态进入就绪状态
C、使线程由阻塞状态进入等待状态
D、使线程由阻塞状态进入运行状态

yield()调用后,只是将线程转换成就绪状态,让系统调度器重新调度一次。

1、下面关于join()方法描述正确的是( )
A、join()方法是用于线程休眠
B、join()方法是用于线程启动
C、join()方法是用于线程插队
D、join()方法是用于线程同步

2、下列方法中可以实现线程插队的是( )
A、start()
B、run()
C、join()
D、sleep()

在这里插入图片描述

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值