首页 > 编程知识 正文

多线程常见面试题(多线程java面试题)

时间:2023-05-05 16:15:35 阅读:85867 作者:1059

编程语言Java的应用非常广泛,可以在网页、手机系统、软件、游戏中发现它的身影,职场的需求越来越大。

在Java面试中,99%以上的人会面临多线程相关的问题。 很多待遇高的Java开发职位要求程序员精通多线程技术。

今天,w3cschool分享了腾讯等大型企业经常报考的Java多线程面试问题。

0、进程、线程、协和的区别是什么? (因为这道题是考基础概念的,所以请不要弄错这个。 )

回答:

简单地说,进程是程序运行和资源分配的基本单位,程序至少有一个进程,进程至少有一个线程。 进程在运行中具有独立的存储器单元,多个线程共享内存资源,从而可以减少切换次数,提高效率。

线程是进程的实体,是cpu调度和调度的基本单位,是比程序小的可以独立执行的基本单位。 可以在同一进程中的多个线程之间同时运行。

1、守护程序线程和非守护程序线程的区别是什么

回答:

程序运行完成后,jvm将等待守护进程以外的线程完成,然后退出,但jvm不会等待守护进程。 守护程序线程最典型的例子是GC线程。

2、多线程上下文的切换是什么?

回答:

多线程上下文切换是指将CPU的控制权从已经在运行的线程切换到准备获取CPU执行权的线程的过程。

3、有两种创建线程的方法吗?

回答:

有两种方法。 实现java.lang.Runnable或扩展java.lang.Thread类。

请在这里注意。 面试官问你这两种方式更优秀的是哪一种? 可以这样回答。

实现Runnable接口可能更好。 因为a、Java不支持多个继承,所以扩展Thread类意味着该子类不能扩展其他类。 实现Runnable接口的类还可以扩展其他类。 b、由于类只要求可执行即可,因此继承整个Thread类的开销可能过大。

4、如何检测一个线程是否有对象监视器

Java的Thread类提供了holdsLock(Object obj )方法,该方法仅在线程中维护对象obj的监视器时才返回true。

5、发生死锁的条件是什么?

回答:

互斥条件:一个资源只能用于一个进程。

请求和保留条件:请求资源是指在进程被阻止时保留获取的资源。

不可剥夺的条件:工艺获得的资源在最终使用完毕之前,不得强制剥夺。

等待循环的条件:多个过程之间形成头尾相连的等待循环的资源关系。

6、如果一个线程发生运行时异常怎么办?

回答:

如果未捕获到此异常,此线程将停止执行。 但是,请注意,如果此线程有对象的监视器,则该对象监视器将立即释放。

7、Java使用的线程调度算法是?

回答:

应用抢占方式后,在Java中一个线程用尽CPU后,操作系统立即根据线程的优先顺序、线程的饥饿状况等数据计算出总优先顺序,并对某个线程分配下一个时间片来执行。

在Java面试中被问到多线程相关问题的概率非常高,但完成Java面试一定需要别的知识储备。 更多的java方面的问题可以点击下面的链接在w3cschool app上查看。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。