?介绍 CAS(Compare and swap),即比较并交换。我们平时所说的自旋锁或乐观锁,其中的核心操作实现就是CAS。 ?保证原子操作 CAS 适用于保证原子操作不被干扰。原子操作即最小不可拆分的操作,也就是说操作一旦开始,就不能被打断,直到操作完成。 在多线程环境下,原子操作是保证线程安全的重要手段。 比如说,假设有两个线程在工作,都想对某个值做修改,就拿自增操作来说吧,要对整数 i 进
多线程-线程池7大参数及其作用 public ThreadPoolExecutor(int corePoolSize, //核心线程池大小 int maximumPoolSize, //最大核心线程池大小 long keepAliveTime, //超时释放
安装 docker 安装Docker相关环境包 yum -y install gcc yum -y install gcc-c++ 安装下载需要的软件包 yum install -y yum-utils 设置Docker的镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/cent
上篇文章说了通过RestTemplate实现微服务之间访问:https://blog.csdn.net/Ber_Bai/article/details/125460941,这篇文章将通过Feign实现微服务之间访问。 代码基于RestTemplate实现微服务之间访问基础上进行修改。 ?Feign简介 Github:https://github.com/OpenFeign/feign Feign是
?Nacos简介 Github:https://github.com/alibaba/nacos 官网文档:https://nacos.io/zh-cn/docs/what-is-nacos.html Nacos 提供了发现、配置和管理微服务能力,能快速实现动态服务发现、服务配置、服务元数据及流量管理。使用 Nacos 可以更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为
一个ssm项目中需要扩展多个数据源,原来只有一个mysql,现在需要再扩展一个mysql,现将需要改动的地方做一个记录。 db.properties修改 首先,需要在数据源配置文件中增加新数据源配置。因为都是mysql,除了需要改动的,其他配置都是用了一样的参数,如果需要更改,可以自行增加配置参数。 # 数据源1 jdbc.user=root jdbc.password=root jdbc.jdb
ArrayList原理 ArrayList集合底层数据结构 ArrayList集合介绍 List 接口的可调整大小的数组实现。 数组:一旦初始化长度就不可以发生改变 数组结构特性 增删慢:每次删除元素,都需要更改数组长度、拷贝以及移动元素位置。 查询快:由于数组在内存中是一块连续空间,因此可以根据地址+索引的方式快速获取对应位置上的元素。 ArrayList继承关系 Serializable序列化
反射的概述 什么是反射 Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。 反射的基本信息 Java程序中许多对象在运行时会出现两种类型:运行时类型
拆包/沾包问题 TCP是面向字节流的协议,在发送方发送的若干包数据到接收方接收时,这些数据包可能会被粘成一个数据包,而从接收缓冲区看,后一包数据的头紧接着前一包数据的尾,这就形成沾包问题。 但如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP 就会将其拆分为多次发送,这就是拆包问题,也就是将一个大的包拆分为多个小包进行发送,接收端接收到多个包才能组成一个完整数据。 为什么UDP没有粘包? 粘
Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编
实现Tomcat和Jetty的切换 前言 上一篇文章我们聊到,SpringBoot中内置了web服务器,包括Tomcat、Jetty,并且实现了SpringBoot启动Tomcat的流程。 那么SpringBoot怎样自动切换成Jetty服务器呢? 接下来我们继续学习如何实现Tomcat和Jetty的自动切换。 定义WebServer接口并实现 package com.ber.springboot
前言 Spring Boot 是一个开源的框架,用于简化 Spring 应用程序的开发和部署。它建立在 Spring Framework 的基础上,内置了web服务器——tomcat和jetty,使得 Spring 应用的构建变得更加快速、简单和可维护。 本文通过实现一个SpringBoot,学习SpringBoot是如何进行工作的。 创建两个模块 springboot:模拟实现springb
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号