抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

Docker常用命令

Docker常用命令 docker ps [-a],查看正在运行的[所有]容器 docker <start|stop|rm> <ID|NAME>,启动/停止/删除容器 docker rmi <IMAGES>,删除镜像 docker attach id,进入某个容器,使用exit退出容器时,容器也会停止 docker exec -it <ID|NA...

Advanced Vim Programming

<SID> The string <SID> can be used in a mapping or menu. When executing the map command, Vim will replace <SID> with the special key code <SNR>, followed by a number that’s ...

RPC intro

RPC (Remote Procedure Call)RPC,远程过程调用,是一个计算机通信协议。 相对的就是本地过程调用,即一个程序中调用它的子程序,可以直接通过地址访问。而RPC的远程,就是跨进程访问的意思。 该协议允许运行于一台计算机的程序调用另一个地址空间(通常是开放网络中的一台计算机)的子程序。程序员就像调用本地程序一样,无需额外地为这个交互作用编程。 RPC是一种Client/S...

This和箭头函数

ThisThis用于访问当前方法所属的对象,取决于调用的对象如: 12345678910111213141516let obj = { a: 12, fn(){ console.log(this) }}// 或者形如let obj = { a: 12,}obj.fn = function()&#...

什么是dll

什么是DLLDLL(Dynamic Link Library),动态链接库,linux下是.so文件,win下是.dll文件。 之所以需要库,是因为可以进行代码解耦和代码重用,由库文件对外提供服务,如exe调用dll。还有一个作用就是在不希望别人看到源码但需要使用我们的功能时隐藏源码。 静态库 win下是.lib文件,linux下是.a文件 它作为程序的一个模块,在链接期间被合并到程序中 ...

Golang内存对齐

Golang内存对齐Cpu要想读取数据,需要通过 地址总线 把地址传输给内存。内存准备好数据输出到 数据总线 ,交给CPU。 每根地址总线能表示一位,8根地址总线就能表示8位二进制数,即256个地址。因为表示不了更大的地址,所以就用不了更大的内存。 每次操作一字节太慢,那就加宽数据总线,要想一次操作一字节就至少需要32位数据总线。8字节就64位。这里每次操作的字节数就是所谓的 机器字长 。...

Golang gui 编程笔记

基本结构 初始化 用户设置 创建主窗口 win := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) 设置窗口属性 win.SetTitle("gtk go") win.SetSizeRequest(400, 320) 创建容器控件(固定布局、任意布局) layout := gtk.NewFixed() 布局添加到窗口...

CAS简记

CAS(Compare And Swap)CAS是一种乐观锁。何谓悲观,编译器认为就是如果不严格同步线程调用则一定会产生异常,所以悲观锁会阻塞其他所有线程调用(互斥)。 但是并不是所有操作都一定会产生异常,如多线程的读操作就不会。 CAS机制在多线程对共享资源访问时比较共享资源当前的状态(newValue)和发起调用时的状态(oldValue)。如果状态一样则还没其他线程访问,这个线程(sw...

jwt原理

传统的基于token的用户验证 用户登录 服务返回token,并在服务端保存token 用户验证 用户再次访问时需要携带token,比较数据库中的token Json Web Token 用户登录 服务返回token,但不保存token 用户验证 用户再次访问时需要携带token,再做token校验 jwt实现过程 用户提交用户名和密码,如果登录...

C陷阱和缺陷

对C陷阱和缺陷一书的记录 (*(void(*)())0)() tips 常数 != 指针,要先将常数转换为指针(void(*)()) 函数签名:type NAME(args)(),故除掉NAME部分表示它的类型 添加语句缺陷else与最近的if进行配对。如: 123if(A) foo();if(B) bar();else done(); else会与if(B)配对,你可能会觉很...