java多线程面试题总结

文章目录

1,线程和进程的区别

进程是应用程序,线程是进程中的一个执行序列,一个进程可以有多个线程。像java的jvm就是一个进程,里面的thread就是一个个线程。

2,创建线程的几种方式

继承Thread类,实现Runnable接口或callable接口,用Executor创建线程池
Runnable相对更受欢迎一些,因为它是接口,类可以实现多个接口。但只能继承一个。

3,线程的执行的几种状态

1,新建(new),创建一个线程对象
2,可运行状态(runnable):调用start()方法,但不会立即执行,而是在可运行线程池中等待调度运行。
3,运行(running):线程获得了cup的时间片,开始执行代码
4,阻塞(block):线程因某种原因放弃了执行权,让出cpu资源,停止运行。
阻塞又可细分为以下几种:
等待阻塞,线程执行了wait()方法,进入到了等待队列。
同步阻塞,如果线程执行中遇到有同步锁被别的线程持有,则jvm会把该线程放到锁池中。
其他阻塞,线程遇到sleep或join方法,jvm也会把线程置为阻塞状态。
当阻塞结束,就由进入2,可运行状态
5,死亡(dead):线程run(),main

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老马识途2.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值