- 线程的简介
- 线程实现的三种方式
- 线程状态,线程同步
- 线程通信问题
- 高级主题
线程的简介
例如边吃饭边玩手机
生活中有太多这样同时做多件事情的例子,看起来是多个任务都在做,其本质上我们的大脑在同一时间依旧只做了一件事情
多个线程组成一个进程,QQ,应用,播放器,等
1、进程(process)
一个启动的应用程序就是进程,执行程序的过程,启动后就分配了内存 和 CPU
2、线程(thread)
进程中的一段顺序执行流,它是cpu执行和调度的最基本的单元
只是程序计数器用一点点内存,其他资源共享进程资源
3、调度模式
分时调度
抢占式调度
4、内存开销
进程:创建和销毁内存消耗比较大
线程:创建和销毁内存消耗比较xiao
同一个进程当中的所有线程共享次进程的所有资源
5、普通方法调用和多线程调用
主线程下来,调用run方法,方法执行完,再往下走,
主线程走主线程,子线程走子线程
总结第一章核心概念:
- 线程就是独立的执行路径;
- 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程;
- main()称之为主线程,为系统入口,用于执行整个程序;
- 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排,调度器与操作系统紧密相连,不可控;
- 对同一份资源操作时,会存在资源抢夺问题,需要加入并发控制;
- 线程对带来额外的开销,如cpu调度时间,并发控制开销;
- 每个线程在自己的工作内存交互,内存控制不会造成数据不一致;
线程实现的三种方式
1、继承Thread类
覆盖run方法。run方法里面就是线程要执行的顺序流。
2、实现Runnable接口,
覆盖run方法。run方法里面就是线程要执行的顺序流。
将实现实现Runnable接口的类对象放入线程对象中