- 博客(7)
- 收藏
- 关注
原创 k8s基础(一)
共享网络是通过Pause容器,将其他业务容器加入到Pause容器(每一个Pod都存在一个根容器,称为Pause容器)里面使其处于同一个明明空间下就能实现网络共享。2. 语法格式:yaml文件通过缩进表示层级关系,但不能使用Tab进行缩进,只能使用空格,---表示一个新文件的开始,#代表注释。1. 概念:yaml文件是k8s集群中资源管理和资源对象编排部署的资源清单文件。eg:(我的k8s是单节点集群,一主一从,且主从都是一个节点)2. Pod的实现机制:(1)共享网络 (2)共享存储。
2024-09-29 16:26:13
843
1
原创 七大软件设计原则
依赖倒置原则:高层模块(越往调用端层次越高)不应该依赖低层模块,二者都应该依赖其抽象;代码实例(遵循依赖倒置原则):可以看出Tom只负责学习,学习的具体细节交给课程去管理。System.out.println("学习python课程");System.out.println("学习python课程");System.out.println("学习java课程");System.out.println("学习java课程");代码示例:这里也体现了里氏替换原则,即可以对父类方法进行扩展,但不要覆盖。
2024-03-13 15:45:41
276
原创 ReentrantLock的底层原理
当多个线程开始竞争锁时,首先进行锁的抢占,该动作发生在lock()方法里面,在lock()方法里面首先应用AQS抽象类检查锁的状态,AQS里面有个变量state,这个state是个互斥变量,它的值分为两种0和大于0,AQS里面还有一个exclusiveOwnerThread用来记录哪个线程获得了锁,如果当前是无锁状态,那么它会修改AQS里面的state的值,state的值从0变为1并且exclusiveOwnerThread的值变为当前获得锁的线程的名称,如果修改成功直接返回,此时说明已经有一个线程竞争锁成
2024-02-21 08:54:08
171
1
原创 Happens-Before模型
volatile变量规则:当第一个操作是普通读/写时,第二个操作只有是volatile写不会出现可见性问题。当第一个操作是volatile读时,第二个操作普通读/写,volatile读,volatile写都不会出现可见性问题,第一个操作是volatile写时,第二个操作是volatile读或volatile写不会出现可见性问题。监视器锁规则:如果线程1获得了锁,并且执行完成释放了锁,那么线程2在获取锁之后,它读取到的数据,一定是线程1更改之后的。
2024-02-20 14:35:58
209
1
原创 说说volitile关键字
此时如果一个变量的值同时被缓存在两个CPU即CPU0和CPU1的高速缓存中,当CPU0修改了这一共享变量的值并同步到主存中,CPU1需要从内存中获取最新的值但获取时机是不确定的,这就会导致缓存一致性问题,解决缓存一致性问题的方法是使用总线锁或缓存锁,缓存锁能够保证缓存一致性是因为其中使用的缓存一致性协议(MESI),MESI表示缓存的四中状态即修改,共享,独占,失效,该协议的核心是修改一个共享的数据时,需要先使其它处于共享状态的缓存失效。对齐填充主要是为了解决伪共享的问题。
2024-02-20 11:03:14
346
阿里云oss服务端签名直传
2023-05-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人