sandyznb
码龄15年
求更新 关注
提问 私信
  • 博客:244,204
    社区:1,496
    问答:8,347
    254,047
    总访问量
  • 196
    原创
  • 115
    粉丝
  • 177
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
加入CSDN时间: 2011-10-21
博客简介:

zhangdell的专栏

查看详细资料
个人成就
  • 获得106次点赞
  • 内容获得46次评论
  • 获得441次收藏
  • 代码片获得451次分享
  • 博客总排名95,641名
  • 原力等级
    原力等级
    4
    原力分
    730
    本月获得
    0
创作历程
  • 1篇
    2025年
  • 1篇
    2024年
  • 1篇
    2023年
  • 30篇
    2022年
  • 84篇
    2021年
  • 36篇
    2020年
  • 10篇
    2019年
  • 1篇
    2018年
  • 2篇
    2017年
  • 4篇
    2015年
  • 20篇
    2014年
  • 21篇
    2013年
成就勋章
TA的专栏
  • pitaya
  • Golang
    32篇
  • mongo
  • 数据结构
    24篇
  • C语言
    27篇
  • 网络编程
    7篇
  • 游戏服务器
    18篇
  • nats
  • Go专家编程
    8篇
  • mqant
  • Origin
    1篇
  • pear admin
    1篇
  • layuimini
    1篇
  • TCP
    5篇
  • Vue
    1篇
  • Git
    1篇
  • Twisted
    7篇
  • Reactor
    1篇
  • mysql
    2篇
  • linux
    3篇
  • 算法
    8篇
  • json_rpc
    1篇
  • Redis
    6篇
  • etcd
    1篇
  • 杂项
    1篇
  • ubuntu
    3篇
  • socket
    8篇
  • 游戏AI
    1篇
  • cocos2d-x 学习笔记
    14篇
  • c++
    12篇
  • shell
  • lua
    4篇
  • python
    37篇
  • 服务器
    14篇

TA关注的专栏 13

TA关注的收藏夹 0

TA关注的社区 9

TA参与的活动 0

兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    架构
  • 服务器
    linux
创作活动更多

编程达人挑战赛·第12期

作为写代码的你,是否也渴望被更多人看到?技术人员普遍有一个共性——明明技术很强,却没人知道你做了什么;花了很多时间踩坑,却没人因你少走弯路;脑子里有一堆干货,但却不懂如何有效地输出。 在如今写代码的人越来越多的时代,能够清晰表达自己思路与技术的人却少之又少。 因此,我们发起了这个【编程达人挑战赛】——帮助你将代码变成作品,将技术转化为真正的价值,同时激励更多的人坚持写作与分享。 注:活动细则介绍请看此贴:[https://bbs.csdn.net/topics/619791811](https://bbs.csdn.net/topics/619791811)。

947人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

go面试汇总

业务场景:打车业务 A线程检查用户的定位是否准确 B匹配附近的司机 C发送订单给司机 D更新客户端已通匹配到司机。这是有问题的,只能保证4个线程 1个接一个的执行 不能保证A-->B-->C-->D。1:有ABCD4个线程,怎么能保证这4个线程顺序执行。下边是AI给出来的几种方案。
原创
博文更新于 2025.12.24 ·
192 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

ubuntu 部署go-vue-admin

【代码】ubuntu 部署go-vue-admin。
原创
博文更新于 2024.04.02 ·
947 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

Golang中 struct和interface 嵌套组合

阅读pitaya的代码中 发现代码中有相当多的struct 组合 interface上边日子中就是 TCPAcceptor 这个struct中组合了一个net.Listener 类型的listener 而net.Listener是一个接口类型tcpPlayerConn 这个struct里边组合了一个 interface类型的ConnTcpAcceptor 类型的对象a,a.listener.Accept(),因为不是匿名的,所以要用a.listenter.xxxxxt...
原创
博文更新于 2023.09.23 ·
2228 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

git 经典图

开局一张图,理清了git。
原创
博文更新于 2023.08.08 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构---平衡二叉树 调整

调整有些术语:不平衡的发现者:在插入一个结点后,从下往上数的第一个平衡因子(左子树的高度-右子树的高度)变为2或者-2的结点。麻烦结点:破坏了平衡的结点,就是刚刚插入的结点。1:LL旋转需要LL旋转的情况:麻烦结点在不平衡发现者的左子树的左子树上,因而叫LL插入,需要LL旋转;方法:把不平衡发现者的左儿子提到不平衡发现者的位置,使他成为新的根,而不平衡发现者则插入到之前他左儿子的右儿子上,新根之前的右儿子插入到不平衡发现者的左儿子上面。具体如图:void LL_Rotate(B
原创
博文更新于 2023.02.25 ·
1958 阅读 ·
1 点赞 ·
2 评论 ·
13 收藏

Apple 内购IAP

1:客户端传tradeid(商品ID)来服务器下单,下单成功之后服务器告诉客户端下单成功了,2:客户端拉起支付 支付成功之后 会收到票据,客户端把票据发给服务器,服务器再去苹果校验客户端是用的unity的插件收到的格式如下这个Payload就是已经base64之后的结果,这个发给服务器 服务器去校验就好了transid 是com.kx880.devilhunter.101XXXXX 根据返回结果中status判断是否成功..................
原创
博文更新于 2022.06.28 ·
1510 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

orgin框架 笔记

记录一下
原创
博文更新于 2022.06.14 ·
405 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

pear admin 运行报错

从pear admin 下载了golang版本的代码,按照要求都配置好了,mac下就是跑不起来,第一感觉是库里边的代码有问题,但是我又没有找到问题,后来我又在ubuntu上down了代码,ubuntu上可以跑起来,这时我才知道应该是mac的golang环境的问题。192:pear-admin-go sandy$ go run main.go {"level":"info","time":"2022-05-14 10:20:45.485","caller":"/Volumes/macHDD/go_pa
原创
博文更新于 2022.05.14 ·
1006 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

layuimini 笔记

不熟悉web开发,步步艰难!!!一:登录相关login.html原本内容<script> layui.use(['form'], function () { var form = layui.form, layer = layui.layer; // 登录过期的时候,跳出ifram框架 if (top.location != self.location) top.location = self.loc
原创
博文更新于 2022.05.12 ·
3501 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

kcp-go 源码分析(二)

一:基础上一篇主要是分析kcp-go上层应用包装,这一篇再来分析kcp算法层面的东西。kcp是一个快速可靠协议,设计的目的就是解决在网络拥堵的情况下TCP协议网络速度慢这个问题。相比TCP而言,KCP增大了网络传输速率但是牺牲了部分带宽。有个形象的比如就是TCP是一条大河,大河里边的水流速慢但是能容纳的水多,而KCP就是小激流,水流速快但是少。 KCP并没有规定下层使用什么协议来传输数据,它只是对数据层进行包装。一般情况下下层是使用UDP作为传输协议,KCP层的数据包...
原创
博文更新于 2022.04.29 ·
1241 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

ubuntu 安装nodejs cnpm yarn vue-cli

一:安装nodejs下载 | Node.js 中文网ubuntu仓库里边的nodejs 比较旧cd ~curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -sudo apt updatesudo apt install nodejs要安装 nodejs 最新版本,可以运行如下命令:cd ~curl -sL https://deb.nodesource.com/setup | sudo bash -sudo a
原创
博文更新于 2022.04.29 ·
1650 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

Git 使用

git branch -a 列举所有分支基于远程分支 创建一个本地分支git pull origin master:v1.3关联本地分支和远程分支,以便后边提交git push origin v1.7git branch --set-upstream-to = orgin/v1.7基于本地当前分支 新建一个dev分支git checkout -b dev/chat 执行后主动切换到了de...
原创
博文更新于 2022.04.28 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

kcp-go 源码分析(一)

项目中用的是"github.com/xtaci/kcp-go",这个仓库不仅仅实现了kcp算法,而且在kcp算法层面上又包装了一层,比如说提供了多种数据加密方式和FEC前向纠错,用起来非常方便。这一篇先分析kcp-go库对kcp算法包装这部分,先分析怎么用,怎么用都不知道去谈算法个人觉得没有意义,kcp算法层面的东西后面再分析。1:先分析服务器层面的func Listen(laddr string) (net.Listener, error) { return ...
原创
博文更新于 2022.04.13 ·
2656 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

Go专家编程 timer、ticker

golang中timer和ticker 都属于time包timer是一次性定时器,执行完一次就结束了,ticker是周期性定时器,周而复始的执行。二者在数据结构上完全一样,都是一个对外的channel + 对内的runtimeTimer。type Timer struct { C <-chan Time r runtimeTimer}type Ticker struct { C <-chan Time // The channel on which the
原创
博文更新于 2022.03.11 ·
1336 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Go专家编程 反射

interface类型是有一个type和value的概念的,反射就是获取type和value的手段。go恰恰提供了这个功能。反射三定律:1:可以将interface变量转换成反射对象。var x float64 = 3.4t := reflect.TypeOf(x) //t is reflect.Typefmt.Println("type:", t)v := reflect.ValueOf(x) //v is reflect.Valuefmt.Println("value:", v
原创
博文更新于 2022.03.10 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go专家编程 mutex、rwmutex篇

互斥锁、Lock()、UnLock(),使用简单但是内部设计很巧妙一:数据结构type Mutex struct { state int32 sema uint32}locked:0/1 表示当前锁的状态。woken:是否有协程被唤醒,0没有1有。starving:是否饥饿状态。处于饥饿状态时 就不会自旋waiter:具体数字,表示阻塞等待锁的个数。协程解锁时根据这个来决定是否释放信号量二:自旋三:rwmutex读写互斥锁,mutex的升
原创
博文更新于 2022.03.09 ·
329 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go专家编程 range篇

range用来遍历 数组、slice、map、channel,使用非常频繁一:可优化的地方func RangeSlice(slice []int) { for index, value := range slice { _, _ = index, value }}func RangeMap(myMap map[int]string) { for key, _ := range myMap { _, _ = key, myMap[key]
原创
博文更新于 2022.03.09 ·
346 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go专家编程 select--case篇

select是golang在语言层面提供的IO多路复用机制,可以检测多个channel是否ready(可读、可写),相比较操作系统层面的IO多路复用还是方便很多。与select 配合使用的是case和default,default是一种特殊的case。一:case的数据结构type scase struct { c *hchan // chan kind uint16 elem unsafe.Pointer
原创
博文更新于 2022.03.09 ·
1788 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Go专家编程 defer篇

一:defer规则:1:延迟函数的参数在defer语句出现时就已经确定下来了2:延迟函数执行按后进先出顺序执行,即先出现的defer最后执行3:延迟函数可能操作主函数的具名返回值二:returnreturn不是原子操作,return i具体执行过程,1给返回值赋值(若有),2执行defer(若有),3执行跳转三:derfer实现原理type _defer struct { sp uintptr //函数栈指针 pc uintptr /
原创
博文更新于 2022.03.09 ·
290 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go专家编程 map篇

详细参考Golang map分析_zhangdell的专栏-CSDN博客无序的基于key----value的结构map是引用类型,必须初始化才能使用。var m2 map[string]string//未初始化fmt.Printf("main11111m2 outer address=%p, m=%p,m=%v
", &m2,m2,m2)//main11111m2 outer address=0xc00008c020, m=0x0,m=map[]从map的内部结构可知..
原创
博文更新于 2022.03.09 ·
403 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多