简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
多线程技术多任务1.1 多任务的概念多任务:在同一时间内执行多个任务[可以把每个任务理解为生活当中的每个活]1.2 现实生活中的多任务操作系统可以同时运行多个任务。比如,你一边打游戏,一边和队友沟通,这就是多任务操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于C
containerd客户端工具nerdctl的使用一、安装containerdyum installcontainerd.io cri-tools-y出现异常:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.yum provides '*/applydeltarpm'yum install deltarpm -y启动
堆内存不足是最常见的 OOM 原因之一,抛出的错误信息是“java.lang.OutOfMemoryError:Java heap space”,原因可能千奇百怪,例如,可能存在内存泄漏问题;也很有可能就是堆的大小不合理,比如我们要处理比较可观的数据量,但是没有显式指定 JVM 堆大小或者指定数值偏小;或者出现 JVM 处理引用不及时,导致堆积起来,内存无法释放等。虚拟机栈和本地方法栈,这里要稍微
方法区方法区与Java堆一样,是各个线程共享的区域,它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译(JIT)后的代码等数据。对于JDK1.8之前的HotSpot虚拟机而言,很多人经常将方法区称为我们上图中所描述的永久代,实际上两者并不等价,因为这仅仅是HotSpot的设计团队选择利用永久代来实现方法区而言。同时对于其他虚拟机比如IBM J9中是不存在永久代的概念的。其实,移除永久代的工
VM在发生Minor GC之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间,如果大于,则此次Minor GC是安全的如果小于,则虚拟机会查看HandlePromotionFailure设置项的值是否允许担保失败。如果HandlePromotionFailure=true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小,如果大于则尝试进行一次Mi
JVM判断对象回收有两种方式:引用记数、GC Roots,引用记数比较简单,JVM为每个对象维护一个引用计数,假设A对象引用计数为零说明没有任务对象引用A对象,那A对象就可以被回收了,但是引用计数有个缺点就是无法解决循环引用的问题。GC Roots通过一系列的名为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证
Golang Web入门(1):自顶向下理解Http服务器摘要由于Golang优秀的并发处理,很多公司使用Golang编写微服务。对于Golang来说,只需要短短几行代码就可以实现一个简单的Http服务器。加上Golang的协程,这个服务器可以拥有极高的性能。然而,正是因为代码过于简单,我们才应该去研究他的底层实现,做到会用,也知道为什么这么用。在本文中,会以自顶向下的方式,从如何使用,到如何实现
回顾:从单体到微服务到Function在过去几年间,微服务架构成为业界主流,很多公司开始采用微服务,并迁移原有的单体应用迁移到微服务架构。从架构上,微服务和单体最大的变化在于微服务架构下应用的粒度被“拆小”:将所有业务逻辑都在一起的单体应用,按照领域模型拆分为多个内聚而自治的“更小”的应用。而Function则在拆分上更进一步,拆分粒度变成了“单个操作”,基于 Function 逐渐演进出现 Fa
Spring容器中的Bean可以分为5个作用域。所有作用域的名称都是自说明的,但是为了避免混淆,还是让我们来解释一下。(1)singleton:这种Bean作用域是默认的,这种作用域确保不管接收到多少个请求,每个容器中只有一个Bean实例,单例模式由Bean Factory自身来维护。(2)prototype:prototype作用域与singleton作用域相反,为每一个Bean请求提供一个实例
下面列举了一些使用Spring框架带来的主要好处。(1)Dependency Injection(DI)使得构造器和JavaBean properties文件中的依赖关系一目了然。(2)与EJB容器相比较,IoC容器更加趋向于轻量级。这样一来使用IoC容器在有限的内存和CPU资源的情况下进行应用程序的开发和发布就变得十分有利。(3)Spring并没有闭门造车,Spring利用了已有的技术,比如OR