自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(十三)

本篇是代码分析的最后一篇,在这里做一个关于序列化与反序列化的总结。一.关于序列化和反序列化1.含义 对象的序列化(Serialization),即把一个对象以流的方式,写入到文件中保存,叫写对象,也叫对象序列化,对象中包含的不仅仅是字符,使用字节流。 对象的反序列化(deserailization),即把文件中保存的对象,以流的方式读取出来,叫做读取对象,也叫对象的反序列。读取的文件保存的都是字节,使用字节流。对象序列化的作用:在传递,和保存对象(object)的时候,...

2021-12-26 16:02:52 866 1

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(十二)

2021SC@SDUSC目录一.前置知识二.关键代码分析一.前置知识关于锁:操作系统中的各种锁:1.互斥锁:加锁时,判断锁是否空闲,如果空闲,修改为上锁状态,返回成功;如果已经上锁,则返回失败。解锁时,则把锁状态修改为空闲状态。具体步骤为:创建互斥锁;初始化这把锁;寻找共享资源;操作共享资源的代码之前加锁;之后进行解锁。2.读写锁关于读:只要没有线程持有某个给定的读写锁用于读以及用于写,那么无论线程有多少可以都持有该读写锁用于读。关于写:只有.

2021-12-13 12:55:22 1044

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(十一)

一.前置知识1.fprintf()函数二.关键代码分析int main(int argc, char *argv[]){std::mutex mutex;std::condition_variable cond;bool finished = false;unsigned short port;std::string host;if (argc != 3){fprintf(stderr, "USAGE: %s <host> <port&g

2021-12-13 09:31:28 206

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(十)

这一篇我们进入client.c的代码分析。

2021-11-30 20:12:10 709

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(九)

一.前置知识点回顾一下http serve的工作原理:创建 TcpListener类对象,监听端口xx; 等待、接受客户机连接到端口xx; 创建与socket字相关联的输入流和输出流;然后,读取客户机的请求信息,若请求类型是GET,则从请求信息中获取所访问的HTML文件名,如果HTML文件存在,则打开HTML文件,把HTTP头信息和 HTML文件内容通过socket传回给Web浏览器,然后关闭文件。否则发送错误信息给Web浏览器。最后,关闭与相应Web浏览器连接的socket 字。二.关键..

2021-11-30 14:34:41 439

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(八)

一.前置知识点:二.源码具体分析using WFTutorialTask = WFNetworkTask<protocol::TutorialRequest,protocol::TutorialResponse>;using WFTutorialServer = WFServer<protocol::TutorialRequest,protocol::TutorialResponse>;using namespace protocol;void

2021-11-22 18:43:20 966

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(七)

一.前置知识点1.malloc()函数:动态分配内存空间malloc()函数是在stdlib.h库里的一个函数。malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,可以使用calloc()函数的~malloc()函数的返回值是:分配成功返回指向该内存的地址,失败则返回 NULL。malloc()函数的返回值类型是 void *,void 并不是说没有返回值或者返回空指针,而是..

2021-11-15 22:04:57 996

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(六)

2021SC@SDUSC目录一.前置知识点1.memcpy函数2.C++ vector容器3.ntohl()、htonl()函数二.具体代码分析本篇接上一篇(62条消息) 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(五)_wadaxinoli的博客-CSDN博客上一篇中,我们分析了message.cc中的头文件,了解到了一些库的内容和用法。那么这一篇我们将介绍message.cc的具体的一部分代码分析。按照惯例,我们先介绍代码中的.

2021-11-10 20:11:14 1283

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(五)

本篇进入message.cc的具体代码学习。本篇以及接下来的两篇将细致分析message.cc的具体代码实现。适合初学者(因为作者也比较菜,如果有错误,请指出!感激不尽!)我们知道一篇代码想要实现,离不开标准库。那么首先我们从这篇代码的每个库介绍起,一些不常用的就当作扩展啦!一.message.cc中所用的库1.errno.herrno.h定义了通过错误码来回报错误资讯的宏(宏(英语:Macro)是一种批量处理的称谓。)简单理解下宏就是:“一些命令组织到一起,完成一个动作,一个任务。”

2021-11-03 09:19:52 292

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(四)

二.代码分析namespace protocol{class TutorialMessage : public ProtocolMessage{private:virtual int encode(struct iovec vectors[], int max);virtual int append(const void *buf, size_t size);public:int set_message_body(const void *body, size_t

2021-10-28 22:13:36 240

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(三)

friend class ProtocolWrapper;};class ProtocolWrapper : public ProtocolMessage{protected:virtual int encode(struct iovec vectors[], int max){return this->msg->encode(vectors, max);}virtual int append(const void *buf, size_t *si...

2021-10-21 08:30:31 252

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(二)

一.前置知识1. size_t: size_t是一些C/C++标准在stddef.h中定义的,size_t 类型表示C中任何对象所能达到的最大长度,它是无符号整数(在默认情况下声明的整型变量都是有符号的类型 除了char有点特别)。2.错误代码:人们在使用软、硬件的时候,软、硬件不能正常操作。由于错误的类型很多,为了对错误进行区分,系统设定了错误代码(error code),软、硬件在运行中如果发生错误,将通过它内部的原有的设定判断、识别而通过错误代码的显示方式给操作者,操作者通过错误代码识别.

2021-10-13 17:30:41 273

原创 搜狗workflow——C++并行计算与异步网络引擎 序列化与反序列化 代码分析(一)

一. 简单介绍序列化与反序列化 对象的序列化(Serialization),即把一个对象以流的方式,写入到文件中保存,叫写对象,也叫对象序列化,对象中包含的不仅仅是字符,使用字节流。 对象的反序列化(deserailization),即把文件中保存的对象,以流的方式读取出来,叫做读取对象,也叫对象的反序列。读取的文件保存的都是字节,使用字节流。对象序列化的作用:在传递,和保存对象(object)的时候,保证对象的完整性和可传递性。 在翻看其它...

2021-10-05 22:02:38 696

原创 搜狗workflow——C++并行计算与异步网络引擎 项目研究(综述)

一.简单介绍workflow workflow是搜狗的一个基于C++的并行计算与异步网络引擎。支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C++后端开发需求。workflow引入了任务流概念,实现了计算任务与通信任务的统一和协同调度,秉持着高性能与轻量级两个核心理念。workflow能屏蔽掉所有底层的概念,提供接口调用,这一点十分方便。二.workflow可以帮我们做什么?...

2021-09-29 12:55:56 1554

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除