- 博客(6)
- 收藏
- 关注
原创 Mybatis动态切换数据库链接出现ArithmeticException异常
但是在上述数据结构中,只是将groupDataSourcesMap下的dataSourceMap数据移除,groupDataSourcesMap实际上还存在,所以在进行添加分组链接数据的前置判断中,会默认groupDataSourcesMap是有数据的,也就是默认groupDataSourcesMap下的dataSourceMap不为0.所以就会一直出现算数异常。1、负载均衡策略中的size是在项目启动,以及第一次数据库请求时,保存的数据库链接信息。
2024-04-02 15:55:02 730 1
原创 单例模式讲解
懒汉式单例式在加载的时候只加载实例的引用,但是引用指向的是一个空,在需要的时候再去创建实例,这种是线程不安全的,但是耗费资源明显就少。饿汉式单例是最简单的方式,在加载类的时候创建类的对象,线程安全,但是会占用一定的空间,也会耗费一定的加载时间。因为懒汉式线程不安全,但是我又想用懒汉式加载,这就诞生了双重检查这一项,在获取实例的方法上加锁,保证线程安全。枚举类的单例,只是作为一个扩展,因为枚举类天生就是单例的,所以在获取的时候之间get就可以了。
2023-11-25 22:11:41 570
原创 设计模式原则
单一职责原则体现在我们编程中,每个接口或者类,它所代表的或者所提供的功能应该是一类,或者说是单一的,比如:创建接口就只包含创建的方法,更新接口只包含更新的方法。一个类应该对自己耦合或者调用的类知道的最少,我只需要知道调用你暴露的接口,而不需要知道接口中具体是怎么实现的。通俗的讲,我们在添加一个功能的时候应该是在原有功能的基础上扩展,而不是修改原有的功能。接口功能尽量单一,细化,在不违反单一职责原则的基础上接口尽量的小,方法尽量的少。下层模块引入上层模块的依赖,改变自上而下的依赖方向。类,方法,模块,应该。
2023-11-25 21:25:06 486
原创 高并发与多线程第二篇-锁的实现
1、锁的作用 在多线程运行状态下,为保证部分共享数据的线程安全,所以在需要实现线程安全的代码块需要加锁控制 2、锁的类型 从大方向来说锁主要分为 synchronized和lock锁,以及通过lock实现的其他锁,例如:ReentrantLock、CountDownLatch、CyclicBarrier等。其下又可根据实际的特性分为乐观锁,悲观锁等 3、锁的介绍 (1)Synchronized 关键字锁 class syncTest { static Thread t1 = nu
2020-11-22 18:28:57 100
原创 高并发与多线程第一篇-线程
一、线程的概念 一个完整的进程中,一种代码的实现路径就是一个线程。 二、线程的创建方式 线程创建方式有两种:一种是继承Thread类,重写run()。或者是实现Runnable接口,重写run方法。 public class Demo02 extends Thread{ @Override public void run() { System.out.println("需要在多线程下执行的代码【Thread】"); } public static
2020-11-08 13:50:13 117
原创 安装MYSQL 启动失败1067
启动失败,有错误信息,或者没有错误信息 查看本机下的应用程序日志信息,查看详细的错误信息,针对解决 我这一块是my.ini文件有问题,MySQL: unknown variable 'default-character-set=utf8’ 解决方案: 1.一是在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-s...
2019-05-25 10:51:12 221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人