程序:未完成某个任务而用某种语言编写的一组指令的集合,是一段静态代码
进程:是程序的一次执行过程,程序运行时进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域,是一个过程,进程的生命周期:有它自身的产生、存在和消亡路径
线程:进程进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执行多个线程,就是支持多线程的
并行:多个cpu同时执行多个任务
并发:一个cpu“同时”执行多个任务,(采用时间片切换
创建线程的方式
在学习多线程之前程序执行时有异常处理、main和垃圾处理三个线程
1.继承Thread类、具备争抢资源的能力
重写run方法,调用.start()启动
获取当前正在执行的名字
Thread.currentThread().setName("")
通过setName和getName设置和获取名字
2.实现Runnable接口
实现run方法
run方法不能抛出异常,没有返回值
3.实现Callable接口
好处:有返回值、能抛出异常
缺点:线程的创建比较麻烦
sleep:人为的制造阻塞时间,结束就进入就绪状态
(1)start():启动当前线程,表面上调用start方法,实际上调用线程里面的run方法
(2)run():线程类,继承Thread类或者实现Runnable接口的时候,都要重新实现这个方法,方法里面是线程要执行的内容
(3)currentThread:Thread类中的一个静态方法:获取当前执行的线程
(4)setName设置线程名字
(5)getName:读取线程名字