进程
-
当一个应用程序运行时,需要使用内存和CPU资源,这些资源需要向操作系统申请
-
操作系统以进程的方式来分配资源,一个进程代表一块独立于其他进程的内存空间
-
一个应用程序要运行,必须至少有一个进程启动
-
进程最大特点是独立,一个进程不可随意访问其他进程的资源,保证多个程序在操作系统上运行互不干扰
线程
-
任何一个进程在启动的时候,操作系统都会给其分配一个线程,应用程序的入口函数在主线程中运行
-
在应用程序的运行过程中,可以有多个任务需要同时执行,于是可以向操作系统申请分配更多线程来执行不同的任务
-
和进程不一样的是,线程之间的资源不是隔离的,他们是可以共享数据,并且线程可以被调用
-
我们所i说的【js中是单线程】的语言,是指在宿主环境中,执行JS代码的线程只有一个
异步
-
单线程的主要优势是不需要考虑线程调度,降低了程序的复杂性
-
但在单线程中如果要处理需要等待的任务时,就必须要考虑阻塞的问题