java多线程面试题汇总

本文详细解释了进程和线程的概念及其区别,介绍了Thread类的run()和start()方法的不同之处,探讨了Runnable和Callable接口的特点及优势。

资源来源: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不可以。

转载于:https://www.cnblogs.com/Zchaowu/p/7461182.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值