synchronized依靠锁机制实现多线程的同步,锁分两种
- 对象锁
- 类锁
1.synchronized作用于普通方法时依靠对象锁工作,多线程访问synchronized方法,一旦某个线程抢到锁后,其他进程排队等待
等效于
示例:
方法method2会一直等待method1执行完成后再执行。
synchronized void method(){}整个函数加上synchronized块,效率并不好。
2.synchronized作用于静态方法相当于
|
|
synchronized依靠锁机制实现多线程的同步,锁分两种
1.synchronized作用于普通方法时依靠对象锁工作,多线程访问synchronized方法,一旦某个线程抢到锁后,其他进程排队等待
等效于
示例:
方法method2会一直等待method1执行完成后再执行。
synchronized void method(){}整个函数加上synchronized块,效率并不好。
2.synchronized作用于静态方法相当于
|
|
OutOfMemoryError异常
Java堆用来存储对象实例,只要不断的创建对象,只要在对象数量达到最大堆的容量限制后就会产生内存溢出
通过设置堆的最小值(-Xms)参数和最大值(-Xmx)设置相等来避免堆自动扩展
|
|
报错信息
|
|
在HotSpot虚拟机中并不区分虚拟机栈和本地方法栈
栈容量只能通过-Xss来设置
存放基本数据类型(byte,char,boolean,shot,int,long,float,double)和对象的引用类型
|
|
发送者可以通过close来关闭channel。
接受者可以通过传入第二个参数来测试channl是否被关闭
|
|
循环for i := range c会不断从channl接受值,直到它被关闭。
只有发送者能关闭channel,而不是接收者
|
|
输出结果
|
|
goroutine是Go运行时环境管理的轻量级线程
go f(x,y,z)
开启一个新的goroutine执行。
f,x,y,z是在当前goroutine中定义的,但是在新的goroutine中运行f。
goroutine在相同的地址空间中运行,因此访问共享内存必须同步。sync提供了这种可能,不过在Go中并不经常用到,因为还有其他办法。
|
|
运行结果,hello和world交替运行。
|
|
简单记录下百度Java面试题
需要自己接下来深入学习JVM,网络层。
由底层原理–>架构–>项目/应用/数据/性能
Go使用error来标识错误状态。
同fmt.Stringer一样,error类型也是个内建接口。
|
|
通常函数会返回一个error值,调用它的代码应判断这个错误是否等于nil来进行错误处理。
|
|
error为nil时表示成功;非nil的error表示错误
转载:
原文出处:
Docker Engine的Deamon进程是以root权限运行的,如果是普通用户要与之交互,需要使用
sudo命令来提权与之交互。之前使用Docker官方的安装脚本安装完成之后,会给出一个提示将当前非root用户添加到doker组之中,以避免每次都需要输入sudo的麻烦。
然而随着Docker版本的迭代和官网的安装方式的更改,现在官方给出的安装方式是添加仓库源地址,然后使用默认的apt或者yum包管理工具来完成后安装。并不再提示用户添加非root用户到组。
默认情况下,完成Docker Engine的安装之后,Docker将会自动创建一个名为docker的用户组,所以root用户和在docker组中的用户都可以免去sudo来与Docker Engine交互。知道原理之后就简单了:
|
|
普遍存在的接口是fmt包中定义的Stringer
|
|
Stringer是一个可以用字符串描述自己的类型。
|
|
参照官网地址:
https://docs.projectcalico.org/v2.5/getting-started/kubernetes/installation/integration
Calico组件包括
本文中安装的calico版本为2.5,对应的组件版本分别为:
calicoctl:v1.5.0
cni-plugin:v1.10.0
cni:v0.3.0
|
|
创建calico-node.service
|
|
service的内容,需要将ETCD_ENDPOINTS中地址换成真实的etcd集群地址,可以将node-image中指定所需要的镜像名称,如果不指定,默认为quay.io/calico/node:latest
下边的命令会导致calio-node一直重启,所以需要换成官网的
|
|
换成(替换下边的ETCD_ENDPOINTS和ExecStart命令中的镜像名称)
|
|
启动calico-node服务
|
|
查看服务启动情况以及容器启动情况
|
|