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

    同步:

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

    异步:

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

    	

    总结:

    同步:在需要IO操作时,等待系统响应
    异步:在需要IO操作时,不等待系统响应
  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284676.html
Copyright © 2011-2022 走看看