Java多线程(一):
任务 (Task)
多任务
同一时间只做了一件事情
多线程
通过多条道路解决了原来因为一条道路而引起的阻塞问题
- 普通方法调用: 只有主线程一条执行路径
- 多线程: 多条执行路径, 主线程和子线程并行交替执行
程序, 进程, 线程
程序
- 指令和数据的有续集合, 是一个静态的概念
进程
- 执行程序的一次执行过程, 是一个动态的概念, 是系统资源分配的单位
- 一个进程可以有多个线程, 视频中同时可以听声音, 看图像, 看弹幕
线程
- 独立的执行路径
- 在程序运行时, 即使没有自己创建线程, 后台也会有多个线程, 如主线程, gc线程;
- main() 称之为主线程, 为系统的入口, 用于执行整个程序;
- 在一个进程中, 如果开辟了多个线程, 线程的运行由调度器安排调度, 调度器和操作系统密切相关, 先后顺序不能人为的干预
- 对同一份资源操作时, 会存在资源抢夺问题, 需要加入并发控制;
- 线程会带来额外的开销, 如CPU调度时间, 并发控制开销
- 每个线程在自己的工作内存交互, 内存控制不当会造成数据不一致