当前位置: 首页 > wzjs >正文

谷歌俄语网站网站seo外链平台

谷歌俄语网站,网站seo外链平台,自己搭建云平台,烟台优化网站公司哪家好对于文件操作来说,不可避免会听到这几个词,但是他们之间有什么关系,没找到一个有说服力的说法。网上搜的资料、人工智能、自己的理解综合来说一下这个问题。程序员自己开发的程序目前大部分是运行在linux上,linux区分用户态和内核…

对于文件操作来说,不可避免会听到这几个词,但是他们之间有什么关系,没找到一个有说服力的说法。网上搜的资料、人工智能、自己的理解综合来说一下这个问题。

程序员自己开发的程序目前大部分是运行在linux上,linux区分用户态和内核态,程序运行在用户态上,通过发送系统调用,内核接收到这个命令后会调用一些硬件来执行自己想要的。

同步异步

是指运行在用户态程序调用操作系统io函数的方式

调用方式调用函数
同步open()、write()、socket()
异步io_uring()、aio_read()

阻塞非阻塞

是指操作系统执行io操作的方式

其中,在 Linux 中,open() 函数用于打开或创建一个文件,其函数原型如下:

int open(const char *pathname, int flags, mode_t mode);


flags:指定文件的打开方式(如只读、只写、读写等)以及一些额外的行为标志。

其中,没有特殊指定,默认是同步调用,如果flags指定了O_NONBLOCK,则是非阻塞调用。

默认文件描述符中该参数是同步调用。

read()函数执行后,阻塞调用和非阻塞调用区别如下

阻塞调用的情况

  1. 如果数据尚未准备好(比如还在磁盘或网络传输中),​内核会让调用线程进入等待状态(挂起)​,线程被移出调度队列,直到数据到达。
  2. 数据到达后,内核唤醒线程,将数据拷贝到用户空间,然后返回。
  3. ​在整个过程中,用户线程是被阻塞的,无法做其他事情。

阻塞,即调用方需要一直等待io操作完成

非阻塞调用的情况

  1. 如果数据尚未准备好,​内核不会让调用线程挂起,而是立即返回一个错误码(如 EWOULDBLOCK 或 EAGAIN)​,表示“现在无法完成操作”。
  2. 用户程序收到这个返回值后,可以选择做其他事情,稍后再尝试调用 read()。
  3. 用户程序需要主动地、不断地轮询内核,直到 read() 返回成功(数据已准备好)。

 非阻塞,即调用方无需一直等待io操作完成,在等待的时间里去做别的事。通过事件通知或者回调函数来实现。

组合的情况

阻塞非阻塞
同步同步阻塞(最常见)同步非阻塞(轮询/io多路复用技术)
异步不存在异步非阻塞(真正异步io)

同步阻塞

感觉像是全流程一个人在处理,因为全流程是阻塞的。

同步非阻塞

全流程分为了两个部分,类似领导(调用函数)和干活的(io操作方式),领导会时不时去看看干活的是否干完了。

异步非阻塞

在同步非阻塞的基础上,干活的(io操作方式)干完后会发通知领导(调用函数),领导也会通知自己的领导。

总结

同步和异步是调用完成后通知方式的区别,同步调用无人通知,需要自己返回,异步会在任务完成后通知(io_uring()、aio_read())。

阻塞和非阻塞就是操作系统执行io操作的区别,非阻塞分为调用方主动轮询和io多路复用技术两种,轮询会耗cpu资源,事件通知或者回调函数不会。

同步阻塞编程简单,同步非阻塞稍微复杂,需要处理轮询操作,异步非阻塞最复杂,需要处理事件通知或者回调函数如何处理的事。

http://www.dtcms.com/wzjs/436646.html

相关文章:

  • 网站开发h5技术sem是什么意思啊
  • 织梦仿商城网站精品成品网站源码
  • wordpress文章摘要插件seo网站技术培训
  • 湘潭做网站选择磐石网络浙江seo
  • b2b2c网站开发广东省广州市白云区
  • 班级网站源代码下载seo怎么赚钱
  • 厦门网站建设外贸方象科技专注于什么领域
  • 手机下载视频网站模板网络营销推广的方法有哪些
  • 蚌埠网站制作哪里有今日时政新闻
  • 网站建设内容的重点优化培训内容
  • 网站宣传单模板做整站优化
  • 网站开网站开发设计公司广州最新发布最新
  • 企业网站制作服务可以打广告的平台
  • 境外社交网站上做推广国际军事最新消息今天
  • 网站排名优化怎么做长尾关键词是什么
  • 添加网站备案号链接企业网站制作要求
  • 湖寮做网站广告门
  • 企业销售网站建设百度做广告
  • 有没有专门做纸箱的网站新闻软文发布平台
  • 帮别人做彩票网站磁力引擎
  • 保定网络公司网站枣庄网站seo
  • 建设专业网站网络公司在百度怎么推广
  • 微信网站建设app公司福州百度首页优化
  • wordpress 隐藏顶部工具栏seo关键词排名软件
  • 建设局下属单位网站关键词优化怎么做的
  • 用h5做的网站平台推广引流怎么做
  • 网站建设服务哪个便宜自己做网站网页归档
  • 我爱做衣服网站营销软文300字
  • 免费的软件网站百度知道合伙人官网
  • 怎么做商品购买网站网络营销公司有哪些