shiyicode
码龄10年
关注
提问 私信
  • 博客:670,603
    社区:485
    671,088
    总访问量
  • 169
    原创
  • 1,149,136
    排名
  • 315
    粉丝
  • 0
    铁粉

个人简介:已弃用! 可以通过shiyi@threebody.xyz联系我

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2015-03-07
博客简介:

YiShi's Blog

博客描述:
new site -> https://shiyi.threebody.xyz
查看详细资料
个人成就
  • 博客专家认证
  • 获得326次点赞
  • 内容获得195次评论
  • 获得984次收藏
  • 代码片获得970次分享
创作历程
  • 1篇
    2018年
  • 12篇
    2017年
  • 117篇
    2016年
  • 46篇
    2015年
成就勋章
TA的专栏
  • 算法刷题之旅
    99篇
  • 编译原理学习之旅
    3篇
  • 游戏开发
    11篇
  • -----------------------
    1篇
  • 服务器开发
    16篇
  • Linux网络编程
    8篇
  • Linux系统编程
    4篇
  • Web开发
    6篇
  • Cocos2d-X开发
    2篇
  • -----------------------
  • C++
    12篇
  • Java
    4篇
  • golang
    1篇
  • Python
    1篇
  • 编译原理
    3篇
  • 网络
    2篇
  • 汇编
    1篇
  • Android
    2篇
  • 人机对弈
    2篇
  • -----------------------
  • 智能算法
    2篇
  • 动态规划
    36篇
  • 搜索
    10篇
  • 贪心
    2篇
  • 思路题
    8篇
  • 模拟
    1篇
  • 并差集
    4篇
  • 最短路
    17篇
  • 最小生成树
    5篇
  • KMP&Manacher
    8篇
  • 线段树&树状数组
    2篇
  • 矩阵
    1篇
  • 舞蹈链-Dance Link
    3篇
  • 高精度
    3篇
  • 数据结构与算法
    7篇
  • 博弈
    1篇
  • LeetCode
    12篇
  • -----------------------
  • Qt
    2篇
  • Gtk
    1篇
  • -----------------------
我的新博客
我的新博客

欢迎访问我的新博客~

创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

初识云函数

可访问谁明浪子心-ShiYi’s Blog,获得更好的阅读体验。什么是云函数云函数提供了一种直接在云上运行,无状态的、短暂的、由事件触发的代码的能力。云函数与轻服务的关系ServerLess,即无服务器架构,也叫轻服务,它包含两个部分,如下:函数即服务(FaaS: Function as a Service)函数即服务提供的是计算能力。原有的计算能力,无论是容器也好,虚拟机也...
原创
发布博客 2018.12.31 ·
16031 阅读 ·
5 点赞 ·
2 评论 ·
24 收藏

go包管理工具-glide使用方法及踩坑记录

前言大学以来一直想做一个OJ,终于可以开始,而且是用新学的Go来写,心里还是挺兴奋的。 项目启动,要搭架子,第一件事,当然是选择一个包管理工具。Go的包管理还是挺混乱的,没有一个能像Java的Maven一样足够强大&一统天下,尽管优秀的第三方工具已有十来种,且官方也开始着手开发(快统一江湖吧)。 (ps:虽然包管理很让人糟心,但这并不能影响我对这门语言的热爱)glide安装go get gith
原创
发布博客 2017.10.02 ·
8503 阅读 ·
0 点赞 ·
2 评论 ·
5 收藏

CSDN迁移Hexo脚本分享

前言这一阵子,刚换了落脚地儿,没想好该去折腾什么,恰好看到可以用git page搭建一个博客,就搞了搞。关于主题啊,配置啊什么的,网上都有好多,偏偏迁移这个事儿挺麻烦,幸好有找到一前辈的脚本,可以将CSDN的博客导出为markdown格式,但是其导出来的md文件并不能直接用hexo,想要显示的好一些还需要再用脚本将它二次润色。 本人重写了润色的脚本,并增加了对CSDN的分类的爬取,将其作为hexo
原创
发布博客 2017.06.18 ·
2514 阅读 ·
2 点赞 ·
6 评论 ·
3 收藏

Linux上定时器的实现

方法1. 使用sleep或者usleep这种方法很简单,这里就不具体描述,它的缺点也很明确:精度不够,特别是在系统负载比较大时,会发生超时现象。方法2. 使用信号量SIGALRM + alarm()alarm也称为闹钟函数,alarm()用来设置在经过参数seconds指定的秒数后传送信号SIGALRM给目前的进程。如果参数seconds为0,则之前设置的闹钟会被取消,并将剩下的时间返回。要注意的是
原创
发布博客 2017.03.02 ·
2325 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

对比高性能I/O设计模式-Reactor/Proactor

通常,I/O复用机制都需要事件分享器。分享器对象可将来自事件源的I/O事件分离出来,并分发到对应的Read/Write事件处理器。开发人员预先注册需要处理的事件及该事件对应的事件处理器。 Reactor和Proactor都涉及到了事件分享器,不同的是,Reactor是基于同步I/O的,而Proactor是与异步I/O相关。在Reactor模式中,事件分离器等待某个事件或者某个操作的状态发生,比如文
原创
发布博客 2017.03.01 ·
1543 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

游戏服务器和一般服务器对比,有何特别?

背景在中国的互联网诸多业务领域中,游戏一直是充当“现金牛”而存在的。但是,在游戏服务器端开发领域中的很多重要问题,并没有被明确的分辨出其特异性,从而得到专门的对待。我们不管是在业界开源领域,还是内部分享中,很少会有专门针对游戏业务特征进行专门设计的组件、类库或者框架。我们从游戏的客户端方面来看,一款专业的游戏客户端引擎,已经是游戏开发的标配,比如最早的Flash Builder,到后期的Cocos2
转载
发布博客 2017.02.27 ·
7063 阅读 ·
2 点赞 ·
0 评论 ·
15 收藏

各类游戏对应的服务端架构

卡牌、跑酷等弱交互服务端卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:登录时可以使用非对称加密(RSA, DH),服务器根据客户端uid,当前时间戳还有服务端私钥,计算哈希得到的加密 key 并发送给客户端。之后双方都用 HTTP通信,并用那个key进行RC4加密。客户端收到key和时间戳后保存在
转载
发布博客 2017.02.24 ·
11073 阅读 ·
5 点赞 ·
1 评论 ·
42 收藏

TCP协议-TCP服务特点和头部结构

TCP服务特点面向连接、基于字节流和可靠传输。TCP的面向连接是什么意思?通信双方都必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。 同时,TCP连接是全双工的,就是说,双方数据的读写,可以通过一个连接进行,完成数据交换之后,通信双方都必须断开连接,以释放系统资源。而且,TCP连接是一对一的,所以,基于广播和多播的应用程序不能使用T
原创
发布博客 2017.02.20 ·
3938 阅读 ·
1 点赞 ·
1 评论 ·
10 收藏

Linux内存管理机制

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存(buffer/cache),利用内存读写的高速特性来提高Linux系统的数据访问性能。在这方面,区别于Windows的内存管理。本文从Linux的内存管理机制入手,简单
转载
发布博客 2017.02.16 ·
4751 阅读 ·
3 点赞 ·
2 评论 ·
21 收藏

游戏服务端开发要点

前言ps:一直希望有个游戏服务端的技能树,此文算是指明方向,故记录于此。 知道该去哪打怪、打什么怪,升级才快。 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原则。希望能帮到大家。一、专业基础1.1 网络1.1.1 理解TCP/IP协议
转载
发布博客 2017.02.15 ·
2948 阅读 ·
3 点赞 ·
0 评论 ·
23 收藏

TCP建立连接为什么是三次握手,为什么不是两次或四次?

什么是三次握手学过网络编程的人,应该都知道TCP建立连接的三次握手,下面简单描述一下这个过程。 如图所示 第一次握手:客户端发送TCP包,置SYN标志位为1,将初始序号X,保存在包头的序列号(Seq)里。 第二次握手:服务端回应确认包,置SYN标志位为1,置ACK为X+1,将初始序列号Y,保存在包头的序列号里。 第三次握手:客户端对服务端的确认包进行确认,置SYN标志位为0,置
原创
发布博客 2017.02.09 ·
13306 阅读 ·
6 点赞 ·
0 评论 ·
18 收藏

三步实现自动注册工厂替代switch语句(c++)

概述在学长博客里看到了使用自动注册工厂替代switch语句的文章,想到可以将其用到自己的项目里,就照猫画虎学习着也实现了一个。 这里并不是用其替代创建派生类的传统Factory,而是为了替代服务器中的业务逻辑处理。 记得以前实现的第一个服务器项目:聊天室,里面在解包后,是一长串的switch语句,根据包里类型标志,来决定该如何处理,写起来舒服,可看起来,包括后期维护,实在是太不方便,因为想使用自
原创
发布博客 2017.01.01 ·
3374 阅读 ·
3 点赞 ·
1 评论 ·
16 收藏

clion配置cmake添加boost库

今天发现xcode在文件名修改之后,该文件内补全就失效,网上寻法多次无果,无奈转向clion。 因为clion的项目构建是基于cmake的,想使用boost等第三方库就需要对其进行配置,故将配置内容保存于此。cmake_minimum_required(VERSION 3.6)#设置项目名称project(demo)set(CMAKE_CXX_STANDARD 11)set(BOOST_ROOT
原创
发布博客 2017.01.01 ·
17892 阅读 ·
0 点赞 ·
3 评论 ·
13 收藏

Boost.Asio网络库之io_service分析

io_service概述几乎绝大多数用到Boost.Asio的代码里都会出现这样一个类:io_service。它应该算是Asio库里的核心类了,其本质是一个任务队列,但又不仅仅是个任务队列。基本结构io_service是个接口类(ps:这里解释一下,这里说接口类并不是指类似java的interface类,而是指其是对下层类做了一个包装,全部功能都是调用下层类来完成)。class io_service
原创
发布博客 2016.12.24 ·
1847 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

IDEA tomcat三步实现热部署

每次切换桌面<比如切换到浏览器>都会更新类和资源),这样我们在更改jsp文件后,只需切换到浏览器,自动就会进行更新了,感觉很爽上面本人已通过对springMVC控制层进行更改及jsp更改尝试,亲测可行,至于spring的配置更改等等是否有效,还没有尝试,不敢妄言。
原创
发布博客 2016.12.18 ·
26132 阅读 ·
2 点赞 ·
8 评论 ·
7 收藏

SpringMVC基于注解进行URL映射

前言 自己之前写了好几个web程序,都遵从这样的方式:地址栏输入的url,后台一定存在对应的servlet。 然而某天看着自己博客地址,链接由域名和自己用户名(如上图所示),就忍不住开始想了,csdn那么多用户,总不可能有那么多servlet吧。 一定是进行了某种映射,于是去查了些资料,知道了如何去实现这样的效果。使用url映射的好处先说说好处,知道好处才有力气用。 1、缩短url,隐藏实际
原创
发布博客 2016.12.15 ·
1980 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringMVC返回json数据(@ResponseBody注解的使用)

最近开始了一个web项目,深深感觉到web方面知识的混杂,越来越明白java为什么可以流行这么多年了,库啊,框架啊,一抓一大把,要多方便有多方便,开发效率提升太高了。最初使用SpringMVC时,为其ModelAndView可以直接返回页面和数据感觉爽到不行,但是当只想返回数据而不返回页面时,该怎么办呢,难道还要每次自己进行json格式转化吗,太麻烦了。用ModelAndView显然不行,因为其必
原创
发布博客 2016.12.15 ·
30560 阅读 ·
3 点赞 ·
5 评论 ·
21 收藏

boost:asio信号量signal_set源码分析及使用

首先我们先看signal_set.hpp,可以看到下面代码#include <boost/asio/detail/config.hpp>#include <boost/asio/basic_signal_set.hpp>namespace boost {namespace asio {/// Typedef for the typical usage of a signal set.typed
原创
发布博客 2016.12.11 ·
5123 阅读 ·
1 点赞 ·
1 评论 ·
6 收藏

shared_ptr智能指针模板类的简单实现(c++11)

前言 最近突然萌生把stl常用的库都通通自己过一遍的想法,算是对泛型编程的一次学习,也深入理解stl,还是对c++11知识的练习,就从智能指针开始吧。 另外,c++11让c++程序变得简洁优雅了许多,对这门语言有点爱不释手了。智能指针原理 通过使用引用计数的方式来自动的对动态申请的内存进行释放,保证指针的生存期和安全性。 对智能指针初始化的时候,会将引用计数初始为1,之后每次拷
原创
发布博客 2016.12.11 ·
8860 阅读 ·
9 点赞 ·
5 评论 ·
22 收藏

boost:asio网络库初学之echo服务器客户端实现

为什么想起来学网络库呢前一阵在网上看到这么一段话 select 实在是太慢了. 在这种背景下, IBM 老大哥带领着MS老弟先搞了 IOCP . 然而开源的人有开源的做法, 在 NIH 综合症的影响下, BSD 的人敢为天下所不齿, 发明了 Kqueue. 同样在 NIH 综合症影响下, Linux 的一群 M* 的猴子捣鼓出了 epoll. 分裂, 让人头疼. 于
原创
发布博客 2016.12.10 ·
3657 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏
加载更多