• 线程的简介
  • 线程实现的三种方式
  • 线程状态,线程同步
  • 线程通信问题
  • 高级主题

线程的简介

例如边吃饭边玩手机
生活中有太多这样同时做多件事情的例子,看起来是多个任务都在做,其本质上我们的大脑在同一时间依旧只做了一件事情
多个线程组成一个进程,QQ,应用,播放器,等
1、进程(process)
一个启动的应用程序就是进程,执行程序的过程,启动后就分配了内存 和 CPU
2、线程(thread)
进程中的一段顺序执行流,它是cpu执行和调度的最基本的单元
只是程序计数器用一点点内存,其他资源共享进程资源
3、调度模式
分时调度
抢占式调度
4、内存开销
进程:创建和销毁内存消耗比较大
线程:创建和销毁内存消耗比较xiao
同一个进程当中的所有线程共享次进程的所有资源

5、普通方法调用和多线程调用
java基础之多线程详细掌握(待更新)
主线程下来,调用run方法,方法执行完,再往下走,
java基础之多线程详细掌握(待更新)
主线程走主线程,子线程走子线程

总结第一章核心概念:
  • 线程就是独立的执行路径;
  • 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程;
  • main()称之为主线程,为系统入口,用于执行整个程序;
  • 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排,调度器与操作系统紧密相连,不可控;
  • 对同一份资源操作时,会存在资源抢夺问题,需要加入并发控制;
  • 线程对带来额外的开销,如cpu调度时间,并发控制开销;
  • 每个线程在自己的工作内存交互,内存控制不会造成数据不一致;

线程实现的三种方式

1、继承Thread类

覆盖run方法。run方法里面就是线程要执行的顺序流。

2、实现Runnable接口,

覆盖run方法。run方法里面就是线程要执行的顺序流。
将实现实现Runnable接口的类对象放入线程对象中

3、实现Calleble 接口,但是要有返回值

线程状态,线程同步

线程通信问题

高级主题

相关文章: