Java多线程(一):

任务 (Task)

多任务

同一时间只做了一件事情

多线程

通过多条道路解决了原来因为一条道路而引起的阻塞问题

  • 普通方法调用: 只有主线程一条执行路径
  • 多线程: 多条执行路径, 主线程和子线程并行交替执行

程序, 进程, 线程

程序

  • 指令和数据的有续集合, 是一个静态的概念

进程

  • 执行程序的一次执行过程, 是一个动态的概念, 是系统资源分配的单位
  • 一个进程可以有多个线程, 视频中同时可以听声音, 看图像, 看弹幕

线程

  • 独立的执行路径
  • 在程序运行时, 即使没有自己创建线程, 后台也会有多个线程, 如主线程, gc线程;
  • main() 称之为主线程, 为系统的入口, 用于执行整个程序;
  • 在一个进程中, 如果开辟了多个线程, 线程的运行由调度器安排调度, 调度器和操作系统密切相关, 先后顺序不能人为的干预
  • 对同一份资源操作时, 会存在资源抢夺问题, 需要加入并发控制;
  • 线程会带来额外的开销, 如CPU调度时间, 并发控制开销
  • 每个线程在自己的工作内存交互, 内存控制不当会造成数据不一致
posted @ 2020-05-21 18:21  Archer_Shu  阅读(126)  评论(0编辑  收藏  举报