Mutex
type Mutex struct{
state int32 // 表示当前互斥锁的状态
sema uint32 // 控制锁状态的信号量
}
state
state 字段一共 8 个字节,最低三位分别表示三个状态
-
locked: 表示互斥锁的状态
-
woken:表示从正常模式被唤醒
-
starving:当前的互斥锁进入饥饿状态
type Mutex struct{
state int32 // 表示当前互斥锁的状态
sema uint32 // 控制锁状态的信号量
}
state 字段一共 8 个字节,最低三位分别表示三个状态
locked: 表示互斥锁的状态
woken:表示从正常模式被唤醒
starving:当前的互斥锁进入饥饿状态
End User -> Proxy A -> Proxy B -> Server
From End User to Proxy A, Proxy A will set it own Host, and put end End User Host into X-Forwarded-Host before making a request to Proxy B. So when Proxy A makes a request, its header will look like:
X-Forwarded-Host: <End User Host>
Host: <Proxy A Host>
And then, Proxy B receives it, it will do the same, append Proxy A’s Host to X-Forwarded-Host
什么是JDBC?
通俗地说:JDBC是java和关系数据库的之间的桥梁;
根据"百科名片"所描述:
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
Chrome浏览器得益于其优秀的V8解释器,javascript执行速度和内存占有率表现非常优秀。对于html+css+javascript前台技术的学习或者开发,浏览器developer tool的使用时必不可少的,也能极大的提高学习或者开发效率。本文根据版本 34.0.1847.116 m。在window下,开启developer tool的快捷键为F12。(2014年4.29日整理—Laily)
首先去 nodejs 官网下载最新版 nodejs
解压
tar -xf node-v8.5.0-linux-x64.tar.xz
放到 /usr/local 目录下
mv node-v8.5.0-linux-x64 /usr/local/node
建立软连接
cd /usr/local/bin/
sudo ln -s /usr/local/node/bin/node .
sudo ln -s /usr/local/node/bin/npm .
npm config set registry https://registry.npmmirror.com
安装 nvm
https://github.com/nvm-sh/nvm
对于 fish shell
安装 bass
https://github.com/edc/bass
在 fish shell 的配置文件里加上
路由器有四种模式:AP(接入点),Router(路由),Repeater(中继),Bridge(桥接),Client(客户端)
搭建 frp 还需要一台能够在外网访问的机器。
去 https://github.com/fatedier/frp/releases 下载 frp 执行文件。
frps 和 frps.yaml 放在具有公网 ip 的机器上。
frpc 和 frpc.yaml 放在内网环境的机器上。
frp 最大的使用场景是内网穿透。
比如下图,家里的 Nas 是在家庭局域网的,别人无法访问,可以借用一台有公网 IP 的 VPS 实现从任何地方访问家里的 Nas。
https://docs.docker.com/compose/compose-file/compose-file-v3/
早期 docker-compose 是一个独立的命令,需要另外安装。docker 之后,docke-compose 已经集成到了 docker 命令里变成了子命令 compose,使用 docker compose 就可以。
应该是在 21.11 月后的 docker desktop 版本里就有了 compose 这个子命令。
go build -ldflags '-w -s'
-w 禁止生成 debug 信息,注意使用该选项后,无法使用 gdb 进行调试。
-s 禁用符号表
可以使用 go tool link –help 查看 ldflags 各参数含义。
go build -gcflags '-N -l'
-N 禁止编译优化