240 发简信
IP属地:陕西
  • go 互斥锁

    并发编程中经常会出现竞争条件和竞争数据的问题,所以需要将代码段设为临界区,通过使用mutex将代码段保护起来。 sync.Mutex mutex是一种互斥锁,用来控制多线程对...

  • 120
    记一次长连接导致的session不一致

    背景 昨天遇到一个问题,用户登陆打印后台管理后,点击其他菜单会自动退出,跳转到登陆页面 排查 经过查看请求日志发现确实每次登陆后,再浏览其他页面时会自动跳转到登陆页。回忆下项...

  • Go RPC(一)

    RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,用于使不同计算机间的程序能够相互调用,就像调用本地程序一样。它的基本原理是将远程调用封...

  • 120
    分布式事务2PC,3PC,TCC,SAGA(一)

    CAP理论 C 一致性 多个节点,其中一个更新了,其他的节点也能读取到最新的数据A 可用性 一个节点挂了后,是否能正常使用P 分区容错性 网络出现了分区后,依然可以正常工作...

  • 120
    ASN.1 编码规则

    ASN.1 编码规则[https://en.wikipedia.org/wiki/ASN.1] ASN.1(Abstract Syntax Notation One) 是一套...

  • RSA加密解密原理(二)

    PKCS PKCS[https://zh.wikipedia.org/wiki/%E5%85%AC%E9%92%A5%E5%AF%86%E7%A0%81%E5%AD%A6%E...

  • RSA加密解密原理(一)

    背景 我们开发的打印系统需要一套授权工具,里面用到了rsa加密算法,之前的笔记一直没整理,最近闲着刚好整理下,方便以后查询。 rsa原理 RSA加密采用了大质数难以分解的原理...

  • 120
    postscript(转载)

    介绍 POSTSCRIPT语言是打印机页面描述的一种程序设计语言。他拥有着广泛的图形操作,并且可以以任意方式,包含变量,函数,以及过程的任意组合。POSTSCRIPT页面描述...

  • 120
    汇编是深入理解Go的基础(转载)

    0. 为什么写本文 平时业务中一直使用 PHP 编写代码,但是一直对 Golang 比较感兴趣,闲暇、周末之余会看一些 Go 底层源码。 近日在分析 go 的某些特性底层功能...

  • go slice append

    go slice append 切片的底层是一个数组,如果截取切片的一部分赋给另一个切片,那这两个切片的数据其实指向的是同一个数组,如果没有发生扩容则修改其中一个切片的值会影...

  • Go interface遇到的几个小问题(持续更新)

    interface遇到的几个问题 Cannot use 'printJobEvent' (type PrintJobEvent) as type ImportInterfac...

  • 关于map引用的小问题

    问题 前几天我们的一个管理系统系统配置页面,刷新一次,其中有一个配置项就变化一次,简单看了下请求,发现每次请求api返回的数据不一致。于是经过一番排查发现是由于map引用的问...

  • 120
    go学习笔记(类型二interface)

    interface 接口是用来定义行为的一种类型,被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。不需要显示的声明实现了哪个接口,只要实现了接口中的一组方法就...

  • go学习笔记(类型一)

    类型(一) go 语言是一种静态语言,编译器需要在编译阶段就知道值的类型以便于分配内存等. 类型的声明 结构类型的声明 基于一个类型的声明 方法 方法就是给定义的类型添加一组...

  • go学习笔记(映射)

    映射 映射是一种用来存储一系列无序键值对的数据结构 映射的底层存储结构。 可以看出一个映射里包含了很多个hash桶(bucket),每个桶里存储了hash值的高8位以及8个k...

  • 120
    go学习笔记(数组&切片)

    数组 数组是存储在一段连续内存中的固定长度的数据类型。数组中的数据类型是一致的可以是内置的类型,也可以是自定义的数据结构类型,由于在内存中是连续的所以很容易计算索引,快速迭代...

  • go学习笔记(包和工具)

    包 Package: 每一组文件被称为一个包,包关键词 package,如:package net/http 所有的go文件都必须在第一行声明包。 同一个文件目录下的go文件...

  • Git CRLF/LF

    Git diff 换行符问题 背景 由于一些特殊的原因,目前代码是运行在windows上的,开发是在mac上,但上传的代码库里的文件里的换行符却是有windows下的也有li...