线程Thread简介
任务、线程、金城、多线程
多任务:短时间切换不同得任务
多线程:通过同一条道路,增加道多条道路,提高使用率,解决堵塞问题
普通方法调多线程只有主线一台执行路径是主线程调run()方法,方法执行解决之后再继续向下执行。
多线程的方法是主线程和子线程并行,交替执行。主线程走主线程的,子线程走子线程的,多条路径执行,可以同时间做很多事情。
进程Process实现
一个进程可以执行多个线程
Thread与Process
1.一台机器上运行着多个程序,一个程序就是一个进程。程序是指令和数据德有序集合,本身是没有含义的是一个静态的概念。
2.进程是是执行程序的一次执行过程,他是动态的概念,是系统资源分配的单位。
3.通常再一个进程中可以包含若干个线程,一个进程终至少有一个线程,不然灭有存在的意义。线程是cpu调度和执行的单位
一个进程可以拥有多个线程,多个线程之间是互不影响的关系
核心概念
1.线程是独立的执行路径
2.在程序运行时,及时自己没有主动的去创建线程,后台也会有多个线程,如主线程和gc(垃圾回收)线程
3.main()方法就是主线程,是系统的入口,用于执行整个程序。
4.多线程的运行是由调度器(cpu)调度器安排调度,先后顺序不能认为干预。
5.多线程往往会同事操作一份资源,存在资源巧夺的问题,这里就有了并发控制的概念和需要
6.线程越多对cpu资源分配的时间和并发控制有影响
7.多线程之间如果并发控制没有做好,会导致多线程之间内存交互,最终导致底层数据不一致的问题
线程创建
Thread、runnable、callable
现成的创建有三种方法
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
注:Thread类就是实现的Runnable接口
继承Thread类
步骤:
1.自定义线程类继承Thread方法
2.重写run()方法,编写线程执行体
3.创建对象,调用start()方法启动线程
注:线程开始不一定立即执行,由cpu调度安排
实现Runnable接口
1.自定义Runnable实现类实现Runnable接口
2.实现run()方法,白那些线程执行体
3.创建线程Thread对象,调用start()方法启动线程
线程状态
线程同步
线程通信问题
其他
程序运行后会有很多进程,每个进程都由一个或多个线程完成,
在实际项目里怎么把任务加入线程,线程怎么管理