自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 轻量级消息队列中间件 -- NSQ介绍及深度源码分析

NSQ介绍及源码分析1简介NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day.It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high

2020-08-17 11:51:18 1186

原创 基于C++20协程与protobuf的轻量级、高性能Rpc框架

根据pb的格式定义req和rsp协议、rpc服务EchoService、Echo和RelayEcho两个rpc方法,定义如下。使用Google的protoc即生成对应的给客户端调用的stub和给服务器调用的service代码。

2023-07-16 11:33:03 301 1

原创 leetcode刷题笔记

81 忘记TrueRi作为右边界15vector<vector> res;res.push_back({curNum, nums[le], nums[ri]});18sort(result.begin(), result.end());result.erase(unique(result.begin(), result.end()), result.end()); 去重....

2020-06-30 21:25:08 135

原创 mq

消息发布1 new TCPServer 监听客户client连接。2 新连接开启go routine处理tcpServer.handle(),>> protocolV2.IOLoop处理新连接。3 IOLoop里面通过go protocolV2.messagePump()开启新routine,负责处理发送数据到client。原routine处理client发来的数据,读取用户发来的数据后通过protocolV2.Exec()函数处理。4 收到发布消息时,调用PUB函数。该函数首先检查订阅

2020-06-12 09:30:26 123

原创 树的非递归遍历及各种常见o(nlogn)排序算法C++代码

树的遍历public static void preOrderTraveralWithStack(TreeNode node){ Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode treeNode = node; while(treeNode!=null || !stack.isEmpty()...

2020-03-31 13:08:30 179

原创 牛客网刷题笔记

member access within misaligned address是使用了未初始化的地址指针for(int i = 0; i <= (int)v.size() - 2; i++){cout << i << endl;v[i]->next = v[i + 1];}v.size()返回的是无符号整形,必须转化为有符号pow()返回的是dou...

2020-03-28 21:41:36 208

原创 岗位要求

网易C++开发岗位要求我们希望你:1、不管学的是什么专业,都有一颗对互联网无比热爱,愿意为之付出的心;2、就是喜欢C、C++这个程序语言,还就爱拿它做项目开发;3、对网络编程有研究,基本的gdb调试能力?内存泄漏,越界读写等常见问题?对你来说都不是问题;4、作为一个优秀的程序员,有良好的服务器端编程能力和编程习惯,相关模块设计、文档编写都是小case;5、十八般武艺样样精通,掌握多线程...

2020-03-11 22:41:45 145

原创 string和int,char互相转化

to_string(); 很多类型》》stringstring to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_s...

2020-03-06 12:16:42 132

原创 MySQL和MongoDB的区别

MySQL和MongoDB的区别关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读写;2、固定的表结构,灵活度稍欠;3、高并发读写需求,传统关系...

2020-03-06 12:04:58 368

原创 简单C++和java线程安全的单例模式

javaclass Singleton2{ private final static Singleton2 instance; private Singleton2(){ } public Singleton2 getInstance(){ if(instance==null){ synchronized(...

2020-03-04 17:04:51 94

原创 深入理解Redis的持久化

深入理解Redis的持久化RDBRDB是将当前数据生成快照保存到硬盘上。RDB的工作流程:执行bgsave命令,Redis父进程判断当前是否存在正在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回。父进程执行fork操作创建子进程,fork操作过程中父进程被阻塞。父进程fork完成后,bgsave命令返回“* Background saving sta...

2020-03-04 17:03:13 253

原创 线程进程笔记

一、进程与线程的区别:1、进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)2、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。3、线程之间的通信更方便,同一...

2020-03-04 16:07:37 125

原创 java和C++ 赋值(=)及参数传递

C++赋值(=)及参数传递对于赋值号“=”默认情况下,C++中对数据类型使用“=”号及函数参数传递时,都是按值传递的。只有使用&号或者指针才能实现按引用传递。例如class A {public: int a;};int main(void){ A aa, bb; aa.a = 100; bb = aa; aa.a = 200; cout <<"a...

2019-12-17 16:40:58 248

原创 C++两种按引用传递和按引用返回return的方式

1 使用&按引用传递标志符void changeNumber(int& x){x = x + 5;}int main(void){int a = 10;cout << "a = " << a << endl;changeNumber(a);cout << "Now a = " << a <<...

2019-12-17 16:38:40 406

原创 c++和java默认权限属性

c++中,如果我们对类的成员(包括成员变量和成员函数)没有定义属性,则默认是private。java中,如果没有定义属性,则默认是default,该权限表示在同一个包中均可直接访问, 不同包不可。...

2019-07-26 16:20:32 1082

原创 numpy tensorflow 输入矩阵量纲归一化

#numpy tensorflow 输入矩阵量纲归一化import numpy as npdef MaxMinNormalization(x,Max,Min): //矩阵归一化 x = (x - Min) / (Max - Min) return xarr = np.array(range(0, 12))arr = arr.reshape((3,4))print ...

2019-03-01 13:47:53 1050

空空如也

空空如也

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

TA关注的人

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