240 发简信
  • @gaopengtttt 注明来源即可

    [c++11]我理解的右值引用、移动语义和完美转发

    c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。 左值、右值 C++中所有的值都必然属于左值、右值二者之一。左值...

  • 120
    庖丁解LevelDB之版本控制

    版本控制或元信息管理,是LevelDB中比较重要的内容。本文首先介绍其在整个LevelDB中不可替代的作用;之后从代码结构引出其实现方式;最后由几个主要的功能点入手详细介绍元...

  • 【Zinx开发API文档】Golang轻量级并发服务器框架

    Zinx源代码 githubhttps://github.com/aceld/zinxgitee码云https://gitee.com/Aceld/zinx 在线开发教程 【...

  • @懒皮 我不是也没有初始化吗

    golang使用protobuf

    简介 和http中常用的json协议一样,protobuf也是用来传输数据的,但是它使用二进制格式,传输效率更高。 安装 下载protoc二进制程序下载链接在windows上...

  • @懒皮 那是protobuf库内部自己使用的,你不需要对它初始化

    golang使用protobuf

    简介 和http中常用的json协议一样,protobuf也是用来传输数据的,但是它使用二进制格式,传输效率更高。 安装 下载protoc二进制程序下载链接在windows上...

  • @小恶魔_20d8 可以,注明来源即可

    golang中接口赋值与方法集

    接口使用疑问 golang中的接口可以轻松实现C++中的多态,而且没有继承自同一父类的限制,感觉方便很多。但是在使用的时候,如果没有理解,也可能会遇到"坑"。比如《Go语言实...

  • 就是有两层锁,这里面一个叫_lock,一个叫waiter,如果构建的时候不是由外部传进来的,就由内部自己生成,这个没影响把,不管哪一种结果都一样。
    一个简单的流程是这样(标号表示顺序):
    A线程 3.condition.acquire() -> 4.condition.notify() -> 6.condition.release()
    B线程 1.condition.acquire() -> 2.condition.wait() 阻塞-> 5.wait被唤醒离开对_lock()加锁 -> 7.condition.release()
    具体到内部操作:
    A线程 3._lock.lock() -> 4. waiter.unlock() -> 6._lock.unlock()
    B线程 1._lock.lock() -> 2.(waiter.lock() -> _lock.unlock() -> waiter.lock() 阻塞 ->) 5._lock.lock()-> 7._lock.unlock()
    “所以Condition内部的lock没有在当前线程中获取锁也不会对死锁的产生有影响吧?”这句话没有看懂

    [python] 线程间同步之条件变量Condition

    为什么需要条件变量 有了前面提到的互斥锁,为什么还需要条件变量呢,当然是由于有些复杂问题互斥锁搞不定了。Python提供的Condition对象提供了对复杂线程同步问题的支持...

  • [翻译]Golang中生成良好的唯一ID的方式

    想像一下你正在开发一个记事本App。每一条记事都需要一个唯一ID。如果你能协调,生成唯一ID是一件非常简单的事。最简单的方式就是通过使用数据库:使用AUTOINCREMENT...

  • 120
    golang分布式存储 读书笔记(3)——数据冗余之RS码

    对象存储的数据冗余 如果数据只存储一份,存储设备坏了数据就丢失了,所以需要做数据冗余。 常见的数据冗余策略就是多副本冗余,该策略实现简单,但是代价比较高。书中介绍的冗余策略是...

  • 120
    Docker 网络-高级网络夸主机容器之间的通信 Etcd 实战篇

    docker-node1 和 docer-node2 是 Etcd 的成员,并且都安装了 Docker redis-client 和 redis 分别是宿主机 docker-...

  • 120
    docker命令图谱

    基本命令 仓库相关操作 docker pull #从远程仓库拉取镜像到本地 docker push #推送本地镜像到远程仓库 docker search #在仓库搜...

  • golang分布式存储 读书笔记(2)——流操作之PutStream封装

    接着上一篇的golang分布式存储 读书笔记(1)——流操作之GetStream封装,这次要讲的是上传文件并保存,使用restful的PUT方法,书中封装了PutStream...

  • golang使用protobuf

    简介 和http中常用的json协议一样,protobuf也是用来传输数据的,但是它使用二进制格式,传输效率更高。 安装 下载protoc二进制程序下载链接在windows上...

  • 120
    经常说的CPU上下文切换是什么意思?(上)

    学习倪鹏飞老师linux性能优化实践的笔记,文中大量内容来源于老师的文档材料,如果喜欢请移步文末截图中的二维码支持老师的课程: 有时候看系统的资源利用率,我们会发现,cpu的...