当前位置:   article > 正文

Java并发多线程高频面试题

java多线程并发面试题

并发知识不管在学习、面试还是工作过程中都非常非常重要,看完本文,相信绝对能助你一臂之力。

1、线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程。每个进程都有自己的内存空间,可执行代码和唯一进程标识符(PID)。

每条线程并行执行不同的任务。不同的进程使用不同的内存空间(线程自己的堆栈),而所有的线程共享一片相同的内存空间(进程主内存)。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。

2、实现多线程的方式有哪些?

  • 继承Thread类:Java单继承,不推荐;
  • 实现Runnable接口:Thread类也是继承Runnable接口,推荐;
  • 实现Callable接口:实现Callable接口,配合FutureTask使用,有返回值;
  • 使用线程池:复用,节约资源;
  • 更多方式可以参考我的文章使用Java Executor框架实现多线程

3、用Runnable还是Thread?

这个问题是上题的后续,大家都知道我们可以通过继承Thread类或者调用Runnable接口来实现线程,问题是,那个方法更好呢?什么情况下使用它?这个问题很容易回答,如果你知道Java不支持类的多重继承,但允许你调用多个接口。所以如果你要继承其他类,当然是调用Runnable接口好了。

  • Runnable和Thread两者最大的区别是Threa
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/956829
推荐阅读
相关标签
  

闽ICP备14008679号