A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

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

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

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

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

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

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

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

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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马