首页 > 代码库 > 进程、线程、同步、异步

进程、线程、同步、异步

研究了解了一下这几个概念性问题:

 

进程、线程:

进程相当于一个软件,线程是这个软件中的某一段程序。

同时打开运行多个软件时就是多进程,

一个软件中可以同时执行多个功能就是多线程。

理论区别:

  1. 进程是程序的一次执行,线程可以理解为进程中执行的一个程序片段。
  2. 进程间是相互独立的,表现在内存空间,上下文环境,线程运行在进程空间内。
  3. 一般来将(不采用特殊技术)进程无法突破进程边界获取其他进程的存储空间,而线程由于处于同一进程空间内,所以同一进程所产生的线程可以共享同一存储空间。
  4. 同一进程中两段代码不能同时执行,除非引入线程。
  5. 线程属于进程,当进程退出时,该进程下的所有线程将被强制退出并清除。
  6. 线程占用的空间资源少于进程占用空间资源。
  7. 进程和线程都有优先级。
  8. 在线程系统中,进程也可以理解为一个线程,可以理解为一个程序的第一个线程。

单线程、多线程区别:

  1. 线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同工作,为多线程。
  2. 单线程是程序中只有一个单一的顺序控制流程,多线程是一个程序中同时运行多个线程,完成不同的工作

 

同步异步:

同步:发送方发送数据后,接收到了接收方返回的数据,再进行下面的操作。

异步:发送方发送数据后,不接收接收方返回的数据,直接进行下面的操作。

举个例子:普通B/S模式(同步)AJAX技术(异步)
同步:提交请求->等待服务端处理->服务端处理完毕返回数据 (在这期间客户端浏览器不能做任何事情,必须等返回数据)
异步:请求通过事件触发->服务端处理 (这时浏览器做其他事情)->处理完毕

进程、线程、同步、异步