IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    C语言中同步和异步的理解

    shendao发表于 2017-06-01 04:21:39
    love 0

    现在我在main.c这个文件中,调用360浏览器。

    C语言中同步和异步的理解

    分析过程:在my.exe里面继续打开另外一个程序,所以就涉及到:my.exe的继续执行是否要等把另外的那个程序执行完才执行呢?如果要等,就是同步;如果不用等,就是异步。这就是同步和异步的问题。

    现在是要等的情况:

    结果就是要等到浏览器完全打开完才会去打印nihao 。

    如果这样看,就会更加的清晰:

    C语言中同步和异步的理解

    结果是:

    一个一个的打开,最后才是打印nihao

    C语言中同步和异步的理解

    如果要异步方式:

    C语言中同步和异步的理解

    结果是:

    C语言中同步和异步的理解

    三个浏览器几乎同时打开,同时“nihao”还会先打印出来。

    因为他们的执行顺序是并列的,谁更轻巧谁就快。这就是异步。

    同时可以看出:默认是同步的。

    总结:

    同步:就是串行执行(按顺序,一个等一个),因为它就是函数的调用原理,栈机制的先进后出决定,速度慢,但是节约资源。

    异步:就是并行执行(没有顺序,同时做),它采用了开启多线程的方式实现同时做多件事情,速度快,但是会加大资源的开销;

    二者应该根据应用场合来使用。

    其实同步和异步的应用场合很多,如:数字电路中有同步电路和异步电路。互联网领域前后端交互的时候使用的ajax也有同步和异步之分。所以同步和异步是一个深入学习C语言很重要的内容。



沪ICP备19023445号-2号
友情链接