多线程面试题总结(基础)

1.jvm虚拟机的启动是单线程的还是多线程的?
多线程,因为垃圾回收线程也要先启动,否则很容易会出现内存溢出。垃圾回收线程加上主线程有两个线程,因此jvm虚拟机的启动是多线程的。
2.并发和并行的区别?
并发是在同一时间段内的同时运行,是逻辑上的同时发生,如一个处理器上同时处理多个任务。
并行是在同一时间点的同时运行,是物理上的同时发生,如多个处理器同时多个任务。
3.线程和进程的区别?
进程是系统进行资源调度的基本单位,一个正在运行的程序就是一个进程,线程是进程的执行路径。
4.守护线程是什么?
守护线程是运行在后台的一种特殊线程。它独立于控制终端并周期性的处理任务或等待处理某些事件的发生。在Java中垃圾回收线程就是特殊的守护线程。
5.创建线程有哪几种方式?
继承 Thread 重写 run 方法;
实现 Runnable 接口;
实现 Callable 接口。
6.说一下 runnable 和 callable 有什么区别?
runnable 没有返回值,callable 可以拿到有返回值,callable 可以看作是 runnable 的补充。
7.线程有哪些状态
新建
就绪
运行
阻塞
死亡
8.sleep()和wait()有什么区别?
sleep()必须指定时间,时间到就会自动唤醒,wait()可以不指定时间,通过notify()唤醒。
sleep()执行后不会释放锁,wait()会释放锁。
sleep()来自Thread类,wait()来自obfect类。
9.线程的 run() 和 start() 有什么区别?
run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用
start():启动线程,并由JVM自动调用run()方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值