前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多线程(一)—进程和线程的概念

多线程(一)—进程和线程的概念

作者头像
全栈程序员站长
发布2021-04-07 16:30:44
5240
发布2021-04-07 16:30:44
举报
文章被收录于专栏:全栈程序员必看

一.进程和线程

1)概念区别

进程:正在进行的程序【代码块】,操作系统会为正在运行的程序分配内存空间 线程:本质就是一条执行路径,可以理解为是进程的子任务【迅雷多资源下载】, 一个进程可以只包含一个线程,也可以包含多个线程

2)问题:默认java虚拟机进程开辟了几条线程?

答:至少有两条线程,主线程[main方法],垃圾回收线程[GC守护线程]

三.多进程和多线程

1)概念区别

多进程:在操作系统的层面上,同时运行多个程序 多线程:在同一进程的层面上,同时运行多条程序

2)开启多线程和开启多进程的好处?

多进程的好处: 提高了CPU的使用率 多线程的好处: 提高了进程的使用率,从而提高了CPU的使用率

3)为什么需要多线程?
  1. 防止线程阻塞,提高用户体验
  2. 能够提高程序的执行效率
  3. 为了能够让多个任务看起来像是”同时执行”

四.多线程执行原理

  • 1.上下文切换: 在多个线程之间切换执行,称为上下文切换
  • 2.在Java中,CPU采用抢占式【随机性】调度模型获取CPU的资源
  • 3.CPU在某一个时间刻度上只能够执行一个进程的一个线程的一条原子性语句
  • 注意: 原子性语句: 不可再分割的语句
  • 4.CPU执行速度非常快,在上下文切换的过程我们肉眼无法察觉,
  • 所以开启多个线程本质上并不能够提高系统的执行速度,反而会降低速度
  • 但是合理地开辟多线程,可以提高CPU的使用率,也可以提高进程的效率

五.重要的概念

1.并行和并发

并发:在同一个时间段[可以分割的时间]可以同时执行[单核处理器] 并行:在同一时间刻度[不可再分割的时间单位]可以同时执行[多核处理器] 高并发:线程数量很大

2.同步和异步:

同步:按照顺序依次执行每一个任务,不会出现线程安全问题 异步:可以同时执行多个任务,相互之间互不影响,例如ajax请求

发布者:全栈程序员栈长,转自请注明出处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年11月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.进程和线程
    • 1)概念区别
      • 2)问题:默认java虚拟机进程开辟了几条线程?
      • 三.多进程和多线程
        • 1)概念区别
          • 2)开启多线程和开启多进程的好处?
          • 3)为什么需要多线程?
          • 四.多线程执行原理
          • 五.重要的概念
            • 1.并行和并发
              • 2.同步和异步:
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档