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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。