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

商业网站建设案例教程wordpress后台登陆logo

商业网站建设案例教程,wordpress后台登陆logo,做像素画的网站,php class 做网站目录 1 I/O基本概念 1.1 IO概念 1.2 同步和异步 1.3 阻塞和非阻塞 2 五种I/O模型 2.1 阻塞IO 2.2 非阻塞I/O 2.3 多路复用I/O ​编辑 2.4 信号驱动式I/O ​编辑 2.5 异步I/O模型​编辑 3 五种I/O模型比较 4 练习 1 I/O基本概念 1.1 IO概念 I/O即数据的读取#x…目录 1 I/O基本概念 1.1 IO概念 1.2 同步和异步 1.3 阻塞和非阻塞 2 五种I/O模型 2.1 阻塞IO 2.2 非阻塞I/O 2.3 多路复用I/O ​编辑 2.4 信号驱动式I/O ​编辑 2.5 异步I/O模型​编辑 3 五种I/O模型比较 4 练习 1 I/O基本概念 1.1 IO概念 I/O即数据的读取接收或写入发送操作通常用户进程中的一个完整I/O分为两个阶段 用户进程空间--内核空间 内核空间--设备空间磁盘、网卡等 I/O分为内存I/O、网络I/O和磁盘I/O三种 1.2 同步和异步 对于一个线程的请求调用来讲同步和异步的区别在于是否要等这个请求出最终结果对于多个线程而言同步或异步就是线程间的步调是否要一致、是否要协调同步也经常用在一个线程内先后两个函数的调用上异步就是一个请求返回时一定不知道结果还得通过其他机制来获知结果如主动轮询或被动通知 1.3 阻塞和非阻塞 阻塞与非阻塞与等待消息通知时的状态调用线程有关阻塞和同步是完全不同的概念。同步是对于消息的通知机制而言阻塞是针对等待消息通知时的状态来说的进程从创建、运行到结束总是处于下面五个状态之一新建状态、就绪状态、运行状态、阻塞状态及死亡状态 线程在运行过程中可能由于以下几种原因进入阻塞状态 线程通过调用sleep方式进休眠状态 线程调用一个在I/O上被阻塞的操作即该操作在输入/输出操作完成前不会返回到它的调用者 线程试图得到一个锁而该锁正被其他线程持有于是只能进入阻塞状态等到获取了同步锁才能恢复执行线程在等待某个触发条件 可能阻塞套接字的Linux Sockets API调用分为以下四种 输入操作输出操作接受连接accept外出连接connect 2 五种I/O模型 2.1 阻塞IO 内核也有数据缓存区数据好了再拷贝到应用的缓存区中包括readaccept、connect等  2.2 非阻塞I/O 示例 read #include stdio.h #include stdlib.h #include unistd.h #include fcntl.h #include sys/types.h #include sys/stat.h #include errno.h#define FIFO_NAME /tmp/myfifoint main(int argc, char *argv[]) {int fd, ret;char buf[BUFSIZ] {};// 创建有名管道if (mkfifo(FIFO_NAME, 0666) -1) {perror(mkfifo);exit(0);}fd open(FIFO_NAME, O_RDONLY|O_NONBLOCK); //非阻塞方式NONBLOCKif(fd 0) {perror(open);exit(0);}while(1) {// do {ret read(fd, buf, BUFSIZ); // } while (ret 0 errno EAGAIN); //如果读失败了并且原因是EAGAIN才会反复轮询读// if(ret 0){ //如果满足EGAIN但是但是RET0是其他异常情况// perror(read);// exit(0);// }if(buf[0] #)break;printf(Read from pipe: %s\n, buf);}// 关闭管道并删除有名管道文件close(fd);unlink(FIFO_NAME);return 0; } 该程序通过使用read函数从文件描述符fd中读取数据存储在buf中。BUFSIZ是一个常量表示可以读取的最大字节数。当读取成功时read函数返回实际读取的字节数如果返回值小于0则表示读取出现错误。 程序使用循环来反复读取数据直到遇到以#开头的字符串才会跳出循环。在读取过程中如果读取失败了并且原因是EAGAIN则会一直轮询读取直到成功读取为止。 注释掉的部分是对异常情况的处理如果出现其他异常情况则会输出错误信息并退出程序。 write函数仅用来测试无特别说明 #include stdio.h #include stdlib.h #include unistd.h #include fcntl.h #include sys/types.h #include sys/stat.h#define FIFO_NAME /tmp/myfifoint main(void) {int fd;char buf[BUFSIZ];// 打开有名管道并进行读写操作fd open(FIFO_NAME, O_WRONLY);if( fd 0 ) {perror(open);exit(0);}while(1) {fgets(buf, BUFSIZ, stdin);if (write(fd, buf, BUFSIZ) 0 ) {perror(write);exit(0);}if(buf[0] #)break;}close(fd);return 0; } 2.3 多路复用I/O 与read区别可以监听多个文件描述符有的可能有数据有的可能没有数据。 如果有数据准备好的描述符返回可读条件如哪个文件描述符好了。 如果有数据了调用recvfrom拷贝数据报再进行处理。如果有多个文件描述符就执行多个这样的过程。 2.4 信号驱动式I/O 注册完就可以干别的事情了类似异步操作。 上面4种在数据报准备好之后拷贝数据的时候都是阻塞的都算作是同步IO都需要recv读一下。 2.5 异步I/O模型 内核无数据到数据报拷贝完成这两部都是非阻塞的应用程序干干什么就干什么。 3 五种I/O模型比较 4 练习 画出5种I/O模型调用过程
http://www.pierceye.com/news/162530/

相关文章:

  • 哪里有做网站服务抖音开放平台是什么
  • 公司网站上传不了图片建设网站条件
  • 精美公司网站源码婚礼策划网站设计
  • 线上设计师网站网络维护是什么意思
  • 培训网站建设阿里云如何建设网站
  • 手机网站列表模板做一钓鱼网站吗
  • 太原网站建设方案策划请问有重庆有做网站吗
  • 网站备案购买语音网站怎么做
  • ftp上传文件到网站深圳成品网站超市
  • 网站开发时app打开很慢建设网站还要云服务器吗
  • 网站设计方案应该怎么做网站自适应开发
  • 徐州手机网站设计青龙县建设局网站
  • 罗湖网站建设费用帮忙做文档的网站
  • 如何在720云网站做全景视频域名注册网站查询工具
  • 网站定制开发流程和功能wordpress怎么看访问
  • 浙江省互联网建设网站python开发手机网站开发
  • 做网站需要多少钱一年动漫制作技术是学什么
  • 刘洋网站建设 够完美保卫处网站建设
  • 个人怎么申请营业执照北京朝阳区优化
  • 免费的舆情网站不用下载直接打开江西城乡建设网站
  • 那些网站是做金融行业网站主目录权限配置
  • 本地网站做不大wordpress 安全设置
  • 宁波教育平台网站建设广告行业怎么找客户
  • php企业网站开发实验总结商城网站建设模板
  • 单词优化和整站优化建设银行的网站特点
  • 厦门淘宝网站设计公司wordpress大前端dux5.2
  • 淮南网站seo网络信息发布平台
  • 网站自己做流量如何查询网站被百度收录情况
  • 网络营销网站源码做网站中怎么设置单张图片
  • 怎么做淘宝客网站网站定位代码