进程与线程

1.进程

  1. 程序的一次执行, 它占有一片独有的内存空间。 例如,我们打开电脑上的chrome,它会占用一定的内存空间,QQ也会在占用一定的内存空间,它们所占用的内存空间是相互独立的,互相是不能够访问的。
  2. 可以通过windows任务管理器查看进程

2.线程

  1. 是进程内的一个独立执行单元
  2. 是程序执行的一个完整流程
  3. 是CPU的最小的调度单元

3.图解

在这里插入图片描述

  1. 当我们启动程序A(或者说软件A),那就会启动其相对应的进程,A对应3个进程,也就是说A是多进程的。
  2. 相对应的我们可以看到程序B(或者说软件B),对应的是单进程的
  3. 对于进程而言,对应不同的线程,可以有单线程和多线程。

4.相关知识

  1. 应用程序必须运行在某个进程的某个线程上
  2. 一个进程至少有一个运行的线程:主线程,进程启动后自动创建
  3. 一个进程中可以同时运行多个线程,这种情况我们会说程序是多线程运行的
  4. 一个进程内的数据可以供该进程中的多个线程直接共享
  5. 不同进程间的数据不能共享
  6. 线程池:保存多个线程对象的容器,实现线程对象的反复利用

5. 问题

通过上面的学习,相信你已经掌握的差不多了,那看看你能否回答出下面的问题。

  1. 何为多进程与多线程?
  2. 比较单线程与多线程。
  3. JS是单线程还是多线程?
  4. 浏览器运行是单线程还是多线程?
  5. 浏览器运行是单进程还是多进程?

答案

  1. 多进程运行:一个应用程序可以同时启动多个实例运行
    多线程:一个进程内,同时有多个线程运行

  2. 多线程
    优点:有效的提高了CPU的效率,例如现在的多核处理器。
    缺点:创建多线程开销,线程间切换开销(例如单核的多进程,会执行一段A进程再执行一段B 进程,如此反复切换),死锁和状态同步问题
    单线程
    优点:顺序运行,简单易懂
    缺点:效率低

  3. js是单线程运行的,但是H5中的Web Worker可以多线程运行

  4. 浏览器是多线程的

  5. 浏览器有的是多进程的有的是单进程的。chrome和新版的IE都是多进程的。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值