多线程基础
一、了解并发和并行的概念
1、并发
在同一个时间段(非常短的时间段)上同时执行,单核CPU可以完成
2、并行
在同一个时间点上同时执行,要实现并行必须是多核CPU才能完成。
3、怎么实现并发?
通过多线程实现并发
二、线程、进程
1、线程
运行程序中的一个顺序控制流程,也是CPU中的最小调度单位
2、进程
运行中的应用程序
三、线程怎么使用
1、线程的创建方式
①、new Thread
继承Thread类、实现run方法、通过new创建对象、调用start方法
②、new Runnable
实现Runnable接口、实现run方法、通过new创建任务对象、创建一个Thread对象,用来承载上面任务、调用线程的start方法
③、new Callable
实现Callable接口、实现call方法、通过new创建任务对象、通过一个线程池去承载上面的任务、通过线程池的submit取提交任务
④、线程池
Thread 和 Runnable有本质区别
Thread是一个类,Runnable是一个接口Thread底层会真正的创建一个线程,而Runnable则只是一个任务,要执行这个任务,必须有一个线程完成。
Runnable和Callable的区别
Callable可以抛异常,Runnable不行Callable可以有返回值,Runnable没有
2、面试题:线程的创建方式你知道有哪几种?
a、四种,分别是继承Thread、实现Runnable接口、实现Callable接口、线程池创建
b、只有一种,就是继承Thread类,因为其他是那种最终都是通过创建Thread去实现
c、jdk没有创建线程的能力,jdk是通过调用native方法start0通知底层操作系统创建的。
四、线程的生命周期
1、new:初始状态2、runnable:运行状态start:就绪状态,只是通知底层操作系统,我已经准备就绪了,你可以给我分配时间片。running:运行中状态3、timed_waiting:限期等待sleep(long)、wait(long)、join(long)、LockSupport.parkUnitl()4、waiting:无限期等待wait、join、LockSupport.park5、blocked:阻塞状态(wait、timed_waiting也是阻塞)只在遇到Synchronized才会进入6、terminated:终止状态
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果