首页 Java Java面试题 java多线程面试题选择题大全含答案

java多线程面试题选择题大全含答案

Nov 13, 2019 pm 02:40 PM
java

java多线程面试题选择题大全含答案

1.下面程序的运行结果()(选择一项)

public static void main(String[] args) {
    Thread t=new Thread(){
        public void run(){
            pong();
        }
        };
        t.run();
        System.out.println("ping");
    }
    static void pong(){
    System.out.println("pong");
}

A. pingpong

B. pongping

C. pingpong和pongping都有可能

D. 都不输出

答案:B

分析:启动线程需要调用start()方法,而t.run()方法,则是使用对象名.分析:启动线程需要调用start()方法,而t.run()方法,则是使用对象名.

2.下列哪个方法可用于创建一个可运行的类()

A. public class X implements Runnable{public void run() {……}}

B. public class X extends Thread{public void run() {……}}

C. public class X extends Thread{public int run() {……}}

D. public class X implements Runnable{protected void run() {……}}

答案:AB

分析: 继承Thread和实现Runable接口

3.在Java多线程中,请用下面哪种方式不会使线程进入阻塞状态()

A. sleep()

B. Suspend()

C. wait()

D. yield()

答案:D

分析:yield会是线程进入就绪状态

4.关于sleep()和wait(),以下描述错误的一项是()

A. sleep是线程类(Thread)的方法,wait是Object类的方法

B. Sleep不释放对象锁,wait放弃对象锁

C. Sleep暂停线程、但监控状态任然保持,结束后会自动恢复

D. Wait后进入等待锁定池,只针对此对象发出notify方法后获取对象锁进入运行状态。

答案:D

分析:针对此对象的notify方法后获取对象锁并进入就绪状态,而不是运行状态。另外针对此对象的notifyAll方法后也可能获取对象锁并进入就绪状态,而不是运行状态

5.以下锁机机制中,不能保证线程安全的是()

A. Lock

B. Synchronized

C. Volatile

答案:C

6.下面所述步骤中,是创建进程做必须的步骤是()

A. 由调度程序为进程分配CPU

B. 建立一个进程控制块

C. 为进程分配内存

D. 为进程分配文件描述符

答案:BC

7.无锁化编程有哪些常见方法?()

A. 针对计数器,可以使用原子加

B. 只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)

C. RCU(Read-Copy-Update),新旧副本切换机制,对于旧副本可以采用延迟释放的做法

D. CAS(Compare-and-Swap),如无锁栈,无锁队列等待

答案:D

分析:A 这方法虽然不太好,但是常见

B ProducerConsumerQueue就是这个,到处都是

C linux kernel里面大量使用

D 本质上其实就是乐观锁,操作起来很困难。单生产者多消费者或者多生产者单消费者的情况下比较常见,也不容易遇到ABA问题。

B ProducerConsumerQueue就是这个,到处都是

C linux kernel里面大量使用

D 本质上其实就是乐观锁,操作起来很困难。。单生产者多消费者或者多生产者单消费者的情况下比较常见,也不容易遇到ABC问题

以上是java多线程面试题选择题大全含答案的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1604
29
PHP教程
1510
276
如何在Java中实现简单的TCP客户端? 如何在Java中实现简单的TCP客户端? Aug 08, 2025 pm 03:56 PM

Importjava.ioandjava.net.SocketforI/Oandsocketcommunication.2.CreateaSocketobjecttoconnecttotheserverusinghostnameandport.3.UsePrintWritertosenddataviaoutputstreamandBufferedReadertoreadserverresponsesfrominputstream.4.Usetry-with-resourcestoautomati

用Docker将Java应用程序部署到Kubernetes 用Docker将Java应用程序部署到Kubernetes Aug 08, 2025 pm 02:45 PM

容器化Java应用:创建Dockerfile,使用基础镜像如eclipse-temurin:17-jre-alpine,复制JAR文件并定义启动命令,通过dockerbuild构建镜像并用dockerrun测试本地运行。2.推送镜像到容器注册表:使用dockertag标记镜像并推送到DockerHub等注册表,需先登录dockerlogin。3.部署到Kubernetes:编写deployment.yaml定义Deployment,设置副本数、容器镜像和资源限制,编写service.yaml创建

VS代码快捷方式专注于Explorer面板 VS代码快捷方式专注于Explorer面板 Aug 08, 2025 am 04:00 AM

VSCode中可通过快捷键快速切换面板与编辑区。要跳转至左侧资源管理器面板,使用Ctrl Shift E(Windows/Linux)或Cmd Shift E(Mac);返回编辑区可用Ctrl `或Esc或Ctrl 1~9。相比鼠标操作,键盘快捷键更高效且不打断编码节奏。其他技巧包括:Ctrl KCtrl E聚焦搜索框,F2重命名文件,Delete删除文件,Enter打开文件,方向键展开/收起文件夹。

修复:Windows Update无法安装 修复:Windows Update无法安装 Aug 08, 2025 pm 04:16 PM

runthewindowsupdatetrubloubleshooterviaSettings>更新&安全> is esseShootsoAtomationfixCommonissues.2.ResetWindowSupDateComponentsByStoppingRealatedServices,RenamingTheSoftWaredWaredWaredSoftwaredSistribution andCatroot2Folders,intrestrestartingthertingthertingtherserviceSteStoceTocle

如何在Java中使用一个时循环 如何在Java中使用一个时循环 Aug 08, 2025 pm 04:04 PM

AwhileloopinJavarepeatedlyexecutescodeaslongastheconditionistrue;2.Initializeacontrolvariablebeforetheloop;3.Definetheloopconditionusingabooleanexpression;4.Updatethecontrolvariableinsidethelooptopreventinfinitelooping;5.Useexampleslikeprintingnumber

Java对象的序列化过程是什么? Java对象的序列化过程是什么? Aug 08, 2025 pm 04:03 PM

JavaserializationConvertSanObject'SstateIntoAbyTeSteAmForStorageorTransermission,andDeserializationReconstructstheObjectStheObjectFromThstream.1.toenableserialization,aclassMustimustimplementTheSerializableizableface.2.UseObjectObjectObjectObjectOutputputputputputtreamToserialializeanobectizeanobectementeabectenobexpent,savin

什么是Java的哈希图? 什么是Java的哈希图? Aug 11, 2025 pm 07:24 PM

ahashmapinjavaiSadattrastureturethatStoreskey-valuepairsforefficeFitedReval,插入和deletion.itusesthekey’shashcode()methodtodeTermInestorageLageLageAgeLageAgeAgeAgeAgeAneStorageAgeAndAllowSavereo(1)timecomplexityforget()

python numpy阵列示例 python numpy阵列示例 Aug 08, 2025 am 06:13 AM

NumPy数组的使用包括:1.创建数组(如从列表、全零、全一、范围创建);2.形状操作(reshape、转置);3.向量化运算(加减乘除、广播、数学函数);4.索引与切片(一维和二维操作);5.统计计算(最大值、最小值、均值、标准差、求和及轴向操作);这些操作高效且无需循环,适合大规模数值计算,最终掌握需多加练习。

See all articles