java并发面试题(一)

  1. 什么是进程,什么是线程,进程和线程有什么区别?
    答:进程是资源调度的最小单位,而线程是CPU调度的最小单位。一个程序下至少有一个进程,一个进程下面至少有一个线程,而一个进程下也开启多个线程来提高执行效率,这就是所谓的多线程。

  2. 说说对并行的理解?
    答:并行是在单位时间内,多个处理器或者多核处理器同时处理多个任务,几个任务同时执行,是属于不同实体上的多个事件。

  3. 说说对并发的理解?
    答:并发是指多个任务在同一个CPU上执行,然后按照划分时间片来交替执行,在同一个时间段内,多个任务都在执行,是属于相同实体上的多个事件,并发是为了更好的利用处理器的每个核,以达到更高的性能。

  4. 使用多线程可能带来什么问题?
    答:内存泄漏、上下文切换、死锁还有受限于硬件和软件的资源闲置问题。

  5. 什么是上下文切换?
    答:可参考本篇博客【线程的上下文切换指的是什么?

  6. 实现多线程的方式有哪些?
    答:继承Thread类,实现Runnable接口,实现Callable接口。

  7. Runnable接口和Callable接口有什么区别?
    答:Runnable接口是没有返回值的,Callable接口是有返回值的。根据业务需要选择使用,可以把Callable接口当作是对Runnable接口的一种补充。

  8. 用什么方式创建线程比较好?
    答:首先能够使用线程池去创建线程是最好的,其次最好不要选择使用继承Thread类方法去创建线程,因为Java是单继承的,使用了这个方法就无法再继承其他类了。然后根据是否需要返回值选择性使用Runnable接口或Callable接口。

  9. Thread类中的start()和run()方法有什么区别?
    答:可参考本篇博客【线程直接调run方法和调start方法的区别

  10. 说说线程的生命周期?
    答:可参考本篇博客【了解线程的生命周期

发布了200 篇原创文章 · 获赞 201 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/104455911
今日推荐