java多线程编程面试题,java线程面试题及答案

  java多线程编程面试题,java线程面试题及答案

  如何解决写爬虫IP受阻的问题?立即使用。

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

  公共静态void main(String[] args) {

  线程t=新线程(){

  公共无效运行(){

  pong();

  }

  };

  t . run();

  system . out . println( ping );

  }

  静态void pong(){

  system . out . println( pong );

  }A .乒乓球

  B.蓬平

  C.乒乓球和乒乓都是可能的

  D.没有输出。

  答案:B

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

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

  A.公共类X实现Runnable{public void run() {……}}

  B.公共类X扩展线程{public void run() {……}}

  C.公共类X扩展线程{public int run() {……}}

  D.公共类X实现Runnable { protected void run(){……} }

  答案:AB

  分析:继承线程和实现可运行接口

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

  A.睡眠()

  B.挂起()

  C.等待()

  D.产量()

  答案:D

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

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

  A.sleep是线程类的方法,wait是对象类的方法。

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

  C.Sleep挂起线程,但监听状态保持,结束后会自动恢复。

  D.等待后进入等待锁池,只对这个对象发出notify方法,然后获取对象锁进入运行状态。

  答案:D

  分析:在这个对象的notify方法之后,对象的锁被获取,它进入就绪状态而不是运行状态。此外,该对象的notifyAll方法也可能获取对象锁并进入就绪状态,而不是运行状态。

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

  A.锁

  B.同步的

  C.不稳定的

  答案:C

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

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

  b .建立过程控制块

  C.为进程分配内存

  D.将文件描述符分配给进程

  答案:BC

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

  A.对于计数器,可以使用原子添加。

  B.只有一个生产者和一个消费者可以无锁地访问环形缓冲区。

  C.RCU(Read-Copy-Update)是一种在新旧副本之间切换的机制,它可以采用延迟释放旧副本的做法。

  D.CAS(比较和交换),如果没有锁堆栈,就没有等待的锁队列。

  答案:D

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

  B ProducerConsumerQueue就是这个,无处不在。

  在Linux内核中广泛使用。

  d其实是一种乐观锁定,操作难度很大。单生产者、多消费者或多生产者单消费者的情况比较常见,不容易遇到ABA问题。

  B ProducerConsumerQueue就是这个,无处不在。

  在Linux内核中广泛使用。

  d其实是一种乐观锁定,操作难度很大。单生产者、多消费者或多生产者单消费者的情况比较常见,不容易遇到ABC题。以上是java多线程面试题中选择题的详细内容。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: