zoukankan      html  css  js  c++  java
  • 进程同步与异步

    同步:

    过程的执行有一定的顺序,也就是说必须一步一步执行。举个例子,在socket中,服务器accept()等待客户端的连接,这里的等待实际上就是阻塞了,在客户端连接之前,该过程不会往下执行。
    在同步阻塞中,应用程序执行到需要IO操作,会执行一个系统调用,然后讲控制权交给内核,此时应用程序便发生的堵塞。内核得到控制权后,开始执行这个系统调用,执行完毕后会向应用程序返回响应,应用程序得到响应后,就不再阻塞,往下执行。
    进程的同步也可以设置非阻塞模型,也就是在执行一个系统调用时,内核立即返回响应,但这个响应并不代表IO操作成功,知识为了让应用程序往下执行,想知道IO操作是否成功还需要应用程序自己去访问内核。

    异步:

    异步通信是指,应用程序在需要IO操作时,会执行一个系统调用,但是它并不等待内核返回响应,就直接往下执行了。注意异步与同步非阻塞模型的差别,异步是不等待内核返回响应;而同步非阻塞是有等待内核返回响应的,只不过该响应不代表IO操作成功。

    	

    总结:

    同步:在需要IO操作时,等待系统响应
    异步:在需要IO操作时,不等待系统响应
  • 相关阅读:
    Linux-文件编程
    Linux-编程基础
    Linux-系统管理
    Linux-命令
    图解HTTP-笔记
    微信小程序发送红包功能。填坑记录
    PHP中使用raw格式发送POST请求
    论一个PHP项目上线的注意点
    PHP CURL 模拟form表单上传遇到的小坑
    使用php的curl函数post返回值为301永久迁移的问题。(301 Moved Permanently)
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284676.html
Copyright © 2011-2022 走看看