摘要: ReentrantLock基本概念 ​ ReentrantLock是一个可重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁,并且在获取锁时支持选择公平模式或者非公平模式。与Synchronized不同的是,它使用起来更加灵活,Synchronized加锁释放锁都是隐式 阅读全文
posted @ 2022-08-04 16:34 Sierra、 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 概述 关键字synchronized可以修饰方法或者以同步代码块的形式来进行使用,它主要确保多个线程在同一时刻只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排他性。 同步代码块 public class SynchronizedDemo implements Runnable 阅读全文
posted @ 2022-06-14 22:23 Sierra、 阅读(384) 评论(0) 推荐(1) 编辑
摘要: 重排序 在程序执行时,为了提高性能,编译器和处理器常常会对指令做重排序。重排序分为三种类型。 编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 指令级并行的重排序。现代处理器采用了指令级并行技术来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机 阅读全文
posted @ 2022-06-11 00:29 Sierra、 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 控制反转(Inversion of Control) 正常的情况下,比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象。通过控制反转,把对象的创建不是通过new方式实现,而是交给Spring配置创建类对象。控制反转是 阅读全文
posted @ 2022-06-05 22:22 Sierra、 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 概述 scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,即容器在对象进入其 相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。 Spring容器bean的作用域类型: singleton:Spring IoC 容器的单个 阅读全文
posted @ 2022-06-05 22:20 Sierra、 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 概述 docker使用Linux桥接网卡,在宿主机虚拟一个docker容器网桥(docker0),docker启动一个容器时会根 据docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时docker网桥是每个容器的默认网 关。因为在同一宿主机内的容器都接入同一个网桥,这样容 阅读全文
posted @ 2022-06-04 13:36 Sierra、 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 概述 Docker 为容器提供了两种存放数据的资源:由 storage driver 管理的镜像层和容器层;以及Data Volume。 store driver Docker镜像的分层结构如下图所示: 容器由最上面一个可写的容器层,以及若干只读的镜像层组成,容器的数据就存放在这些层中。这样的分层结 阅读全文
posted @ 2022-06-03 20:43 Sierra、 阅读(940) 评论(3) 推荐(1) 编辑
摘要: 概述 ​ 一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的 阅读全文
posted @ 2022-06-03 13:43 Sierra、 阅读(544) 评论(0) 推荐(1) 编辑
摘要: 线程通信与线程同步 ​ 在并发编程中需要解决两个关键问题:1.线程之间如何通信 2.线程之间如何同步。线程通信是指线程之间以何种机制来交换消息。线程之间通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行通信。而在消息传递的并发模型里 阅读全文
posted @ 2022-05-31 17:10 Sierra、 阅读(604) 评论(0) 推荐(1) 编辑
摘要: Docker是什么 Docker 是一个用于开发、发布和运行应用程序的开放平台。 Docker 能够将应用程序与基础架构分离,可以像管理应用程序一样管理基础设施。Docker 提供了在容器的隔离环境中打包和运行应用程序的能力。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容 阅读全文
posted @ 2022-05-22 11:15 Sierra、 阅读(392) 评论(0) 推荐(0) 编辑