java多线程面试题汇总
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多线程面试题汇总相关的知识,希望对你有一定的参考价值。
资源来源:http://www.importnew.com/12773.html
1.线程是什么?
线程被包含在进程之中,是进程中的实际运行单位,是操作系统中可以进行运算调度的最小单位。
2.进程是什么?
进程是是一个执行中的程序,是cpu资源分配的最小单位(线程是cpu调度的最小单位),进程中的线程共享进程的上下文环境。
3.线程和进程的区别?
每个进程使用不同的内存空间,而进程内的所有线程共享一片相同的内存空间。4.Thread类的run()和start()方法的区别?
threadDemo.run()跟普通的调用方法是一样的,程序会按顺序执行,等run方法执行结束之后,才可以继续往下执行下面的代码。
通过threadDemo.start()来启动一个线程,真正的实现了多线程,不用等到run()方法题结束就可以继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为线程体,它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止。然后CPU再调度其它线程。
5.Runnable比Thread具有的优势
1.适合实现资源共享
2.可以避免java中的单继承问题
3.增加程序的健壮性,代码可以被多个程序共享,代码和数据独立。
6.Runnable和Callable的区别?
Callable是jdk1.5之后出现的,Callable可以返回值和抛出异常,但是Runnable不可以。
以上是关于java多线程面试题汇总的主要内容,如果未能解决你的问题,请参考以下文章