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服务
|
|
查看服务启动情况以及容器启动情况
|
|