线程基础
-
什么是线程,什么是进程
- 线程是进程的最小单位
- 一个进程可以有一个或者多个线程组成
-
并发与并行
- 并发是一个线程同时做多件事情
- 并行是多个线程同时做一件事情
-
创建线程的方式
- 通过继承Thread类
- 实现runnable
- 创建线程池
-
线程的状态
-
创建
- 通过创建线程但未调用start方法
-
可运行
- 调用start方法运行线程
-
阻塞
- 未获取锁,在阻塞队列中不占有cpu时间
-
计时等待
- 使用wait方法释放锁让其他线程运行
- 使用sleep方法未释放锁其他线程无法运行
-
等待
- 释放锁等待被notify方法唤醒
-
死亡
- 线程执行完成自动销毁
- 线程出现异常
-
-
run方法与start方法的区别
- run是被调用方法里面写业务,可以多次调用
- start方法是启动线程方法只能执行一个
-
sleep方法与wait方法的区别
- 使用wait方法释放锁让其他线程运行
- 使用sleep方法未释放锁其他线程无法运行
-
notifyAll与notify的区别
- notifyAll唤醒所有等待的线程
- notify随即唤醒等待线程