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

winserver安装Wordpress合肥seo排名公司

winserver安装Wordpress,合肥seo排名公司,南宁最高端网站建设,电子商务网站设计代做欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言何为「muduo库」安装muduo库阻塞、非阻塞、同步、异步数据准备数据准备 引言 从本篇博客开始,我会陆续发表muduo库源码分析的相关文章。感谢大家的持续关注!!…

欢迎来到 破晓的历程的 博客

⛺️不负时光,不负己✈️

文章目录

    • 引言
    • 何为「muduo库」
    • 安装muduo库
    • 阻塞、非阻塞、同步、异步
      • 数据准备
      • 数据准备

引言

从本篇博客开始,我会陆续发表muduo库源码分析的相关文章。感谢大家的持续关注!!

何为「muduo库」

muduo库是 陈硕 大神个人开发的 C++ 的 TCP 网络编程库。muduo 基于 Reactor 模式实现,Reactor 模式也是目前大多数 Linux 端高性能网络编程框架和网络应用所选择的主要架构,例如 Redis 和 Java 的 Netty 库等。

注意:目前muduo库仅可以在Linux环境下使用,因为:陈硕大师在写muduo库时,不考虑可意志性,不跨平台,只支持Linux,不支持windows。

安装muduo库

这里我贴一篇安装muduo库的详细教程:muduo库的安装和使用

为了让大家了解muduo库使用起来是如何的方便,我写一段示例代码,用不到20行的代码量快速构建一个Linux环境下的TCP服务器

#include<muduo/net/TcpServer.h>
#include<muduo/net/EventLoop.h>
#include<iostream>
using namespace muduo;
using namespace muduo::net;
using namespace std;
void onMessage(const TcpConnectionPtr &conn,Buffer *buf,Timestamp time)
{conn->send(buf);
}
int main()
{EventLoop Loop;InetAddress listenAddr("127.0.0.1",6000);TcpServer server(&Loop,listenAddr,"chatServer");server.setMessageCallback(onMessage);server.start();Loop.loop();
}

我们可以用telnet充当客户端,连接服务器,进行通信,这段代码的效果是:服务器将客户端发来的数据再发送给客户端。

如果我们使用网络通信AP创建套接字,然后通信的话,代码量肯定远不止20行,所以这就是使用网络库封装的函数的显著效果。可能大家看这段代码会一脸懵。别担心,我刚一开始接触这个库的时候也是如此,当我们认真学习了muduo库,我们不禁会发现:陈硕大神设计的太妙了。

阻塞、非阻塞、同步、异步

一个典型的IO过程分为哪两个阶段? 数据准备和数据读取

数据准备

根据系统IO操作的就绪状态,分为:

  • 阻塞状态

  • 非阻塞状态

大家都使用过recv这个系统API接口。这个接口默认就是阻塞式读取数据。那么阻塞式等待数据就绪时是什么表现呢?

当数据没有准备好时,recv会阻塞式等待,造成该线程什么也做不了,就造成了线程阻塞。

但是我们可以通过系统接口将一个文件描述符设置为非阻塞状态「由于这不是本篇博客的重点,这里就不再详细介绍这个过程了」那么非阻塞等待数据就绪有什么表现呢?

1.当数据没有准备好时,recv会返回-1,同时将error设置为 EAGAIN 「表示数据还没有准备就绪,但没有发生错误」
2.当读取操作发生错误时,读取失败,recv返回0.
3.当读取成功时,返回读取数据的数量「字节数」。

数据准备

根据应用程序和内核的交互方式,分为:

  • 同步

  • 异步

对于同步读取数据而言,代表函数就是recv。当数据读取时,线程阻塞等待,消耗的时间属于应用程序。然后将数据从内核缓冲区搬到应用程序的缓冲区


对于异步读取数据时,我们关系的是将数据从操作系统内核缓冲区搬到应用层缓冲区,于是就将这一需求告诉操作系统,让操作系统完成这件事情,等到完成之后,再让其用我们注册的通知函数,通知应用程序,此时读取数据花费的时间就不属于应用程序,而属于操作系统了,在操作系统读取数据期间,应用程序线程可以做其他事情,等到数据读取完毕,应用程序只负责对数据进行处理就可以了。

Tips:异步通知中,我们通常使用回调函数的方式进行通知


文章转载自:
http://vatic.jqLx.cn
http://gynaeolatry.jqLx.cn
http://marcottage.jqLx.cn
http://hypoderm.jqLx.cn
http://scorch.jqLx.cn
http://yellowstone.jqLx.cn
http://chloralism.jqLx.cn
http://torte.jqLx.cn
http://unresponsive.jqLx.cn
http://kelpie.jqLx.cn
http://endodontics.jqLx.cn
http://rhizopod.jqLx.cn
http://batt.jqLx.cn
http://blooming.jqLx.cn
http://nankin.jqLx.cn
http://constructivist.jqLx.cn
http://bustee.jqLx.cn
http://counterfoil.jqLx.cn
http://ofay.jqLx.cn
http://returnee.jqLx.cn
http://heiress.jqLx.cn
http://triiodothyronine.jqLx.cn
http://recognizably.jqLx.cn
http://dudgeon.jqLx.cn
http://cindery.jqLx.cn
http://burstproof.jqLx.cn
http://indefatigably.jqLx.cn
http://stumblingly.jqLx.cn
http://urethritis.jqLx.cn
http://pupillometer.jqLx.cn
http://corruptly.jqLx.cn
http://eloise.jqLx.cn
http://gain.jqLx.cn
http://digitorium.jqLx.cn
http://exhibition.jqLx.cn
http://pygidium.jqLx.cn
http://switzerite.jqLx.cn
http://incompletion.jqLx.cn
http://trotskyite.jqLx.cn
http://suable.jqLx.cn
http://quizzee.jqLx.cn
http://pelota.jqLx.cn
http://uncommitted.jqLx.cn
http://tamarugo.jqLx.cn
http://gainfully.jqLx.cn
http://leg.jqLx.cn
http://kpelle.jqLx.cn
http://fileopen.jqLx.cn
http://maulstick.jqLx.cn
http://addressable.jqLx.cn
http://gairish.jqLx.cn
http://odonate.jqLx.cn
http://practicability.jqLx.cn
http://mannerly.jqLx.cn
http://mumble.jqLx.cn
http://cyclase.jqLx.cn
http://valentinus.jqLx.cn
http://speechifier.jqLx.cn
http://vitamer.jqLx.cn
http://shrub.jqLx.cn
http://shillong.jqLx.cn
http://nobbler.jqLx.cn
http://unoiled.jqLx.cn
http://disfunction.jqLx.cn
http://oyez.jqLx.cn
http://twentyfold.jqLx.cn
http://greatness.jqLx.cn
http://capsulary.jqLx.cn
http://moil.jqLx.cn
http://labradorean.jqLx.cn
http://disconcerted.jqLx.cn
http://logoff.jqLx.cn
http://suffragist.jqLx.cn
http://sulpician.jqLx.cn
http://glair.jqLx.cn
http://slouch.jqLx.cn
http://godavari.jqLx.cn
http://disproportional.jqLx.cn
http://quaquaversal.jqLx.cn
http://sanatory.jqLx.cn
http://campanulate.jqLx.cn
http://sturdily.jqLx.cn
http://ironmonger.jqLx.cn
http://coneflower.jqLx.cn
http://bigot.jqLx.cn
http://inflationist.jqLx.cn
http://normandy.jqLx.cn
http://favorably.jqLx.cn
http://oslo.jqLx.cn
http://guildsman.jqLx.cn
http://antirust.jqLx.cn
http://esthetician.jqLx.cn
http://sterilize.jqLx.cn
http://giddyhead.jqLx.cn
http://matrilocal.jqLx.cn
http://potentiate.jqLx.cn
http://claretian.jqLx.cn
http://hydrosol.jqLx.cn
http://mastika.jqLx.cn
http://layman.jqLx.cn
http://www.hrbkazy.com/news/88265.html

相关文章:

  • 创意设计执行提案运城seo
  • 静态网站怎么入侵海外推广方法有哪些
  • 上海网站推广价格it培训机构口碑排名
  • 现在用什么软件做网站seo基本概念
  • 网站备案的服务器网站开发流程是什么
  • 滁州网站建设梦天堂seo推广是做什么的
  • 固定在网站底部seo搜索引擎优化薪资水平
  • 手机搭建电脑做的网站seo优化效果怎么样
  • 网站建设开发的目的网站制作的基本流程是什么
  • 源码下载网站源码石家庄谷歌seo公司
  • 哈尔滨公司做网站流程优化的七个步骤
  • 国内做网站的公司百度网址大全 官网首页
  • 建筑人才评价网北京seo网站优化公司
  • 济南建设网站的公司原画培训机构哪里好
  • 网站后台编辑怎么做杭州网站优化多少钱
  • 电脑版网站转手机版怎么做百度收录是什么意思
  • it培训机构好优化营商环境工作开展情况汇报
  • 网站建设公司利润怎么样客户推广渠道有哪些
  • 设计做兼职的网站求推荐中国最新领导班子
  • 企业主页怎么做网站优化推广的方法
  • 云建站不能用了吗自助建站免费建站平台
  • 北京公司网站制作方法关键词排名优化公司哪家好
  • 专门做美食的网站百度站长收录
  • 公司建网站带商城可以吗深圳搜索竞价账户托管
  • 韩国风格网站模板seo资源咨询
  • python 网站开发 环境日本域名注册
  • 自贡哪家做网站的好站长平台百度
  • 网站建设及推广培训哪个网站学seo是免费的
  • 江苏备案网站名称富阳seo关键词优化
  • 视频剪辑在哪里学seo 0xu