自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Mysql的读写分离

MySQL的读写分离是一种数据库架构模式,它通过在主服务器上执行写操作,将更新实时地同步到一个或多个从服务器,并在从服务器上执行读操作。主服务器处理所有的写操作,因此主服务器的性能必须足够强大,以满足所有写操作的要求。为了将较消耗资源的增删改操作与消耗资源较少的读取操作做出区分,用不同的服务器节点分别进行处理,从而减轻服务器消耗。以上就是一个基于 SpringBoot 的 MySQL 读写分离示例,通过使用注解来标识当前方法的读写类型,实现了数据源的动态切换。4.通过注解实现读写分离。

2023-11-22 20:33:24 104 1

原创 Spring常用注解

面试中遇到了,总结一下当做个复习吧。

2023-11-22 14:56:52 80 1

原创 线程池的简单介绍和手写一个简单的线程池

使用线程池可以有效地提高程序的性能,同时也可以避免因为线程的创建和销毁带来的性能开销,是多线程编程中的常用技术。1.创建线程池对象:首先需要创建一个线程池对象,定义线程池的大小、线程的优先级、线程的存活时间等属性。5.执行任务:线程池中的线程会自动从任务队列中获取任务并执行,直到线程池中的所有线程都处于空闲状态。6.关闭线程池:当任务执行完毕后需要关闭线程池,释放线程池中的资源。工作线程类,用于管理run()方法,从任务队列中取出任务执行。2.创建任务队列:创建一个任务队列,用来存储待执行的任务。

2023-11-18 16:48:01 179 1

原创 Linux常用命令

Linux系统基于Unix设计思想,其所实现的核心是由C语言编写的Linux内核(Linux Kernel),是Linux系统的核心组成部分,它提供了系统的基本功能。将文件名以file开头、扩展名为txt的所有文件移动到dir1目录下,仅移动比dir1目录下的同名文件更新或不存在的文件:mv -u file*.txt dir1/将file1.txt强制移动到dir1目录下,如果dir1目录下已有同名文件则直接覆盖:mv -f file1.txt dir1/file1.txt。

2023-11-15 18:07:06 82

原创 计算机网络传输层协议

计算机网络传输层是OSI模型中的第四层,也是TCP/IP协议中的一层。它的主要任务是为应用层提供可靠的端到端数据传输和错误控制。传输层向应用层提供了两种最常见的协议:TCP(传输控制协议)和UDP(用户数据报协议)。1.传输控制协议(TCP):面向连接的协议,提供可靠的数据传输服务,确保数据的可靠性、流量控制、拥塞控制等。2.用户数据报协议(UDP):面向无连接的协议,提供非可靠的数据传输服务,适用于实时传输数据,比如视频、音频等。

2023-11-11 15:38:39 161 1

原创 线程安全的生产消费者模型

例如,可以使用互斥锁来保护队列的访问,从而确保生产者线程和消费者线程不会同时访问队列。另外,可以使用条件变量来实现队列的阻塞和唤醒操作,以便生产者和消费者能够正确地等待和获取数据。需要注意的是,wait()和notify()都需要在线程安全的情况下操作,如放在synchronized控制的代码块中或使用Lock加锁后,并且因为这两个方法都是监视器下的方法,因此调用时也需要注意使用同一个监视器。在生产过程中,线程安全的生产者线程会向队列中添加数据,而线程安全的消费者线程会从队列中消费数据。

2023-11-11 15:31:01 326 1

原创 线程安全、简单的创建锁demo代码

线程安全是指在多线程并发访问时,程序仍能保持正确的行为和数据的完整性。即多个线程可以同时访问某个对象或方法,但不会损坏数据的一致性和正确性。线程安全的实现需要遵循一些规则,如使用同步机制保证多个线程对共享资源的访问互斥,避免竞态条件等。线程安全对于多线程编程非常重要,因为多个线程之间的相互影响和竞争可能会导致程序出现意想不到的错误和异常。

2023-11-09 17:20:16 220 1

原创 线程的生命周期与启动线程的方式

Java 语言中线程有六种状态,分别是:NEW 初始状态:当一个Thread类或其子类的对象被声明并创建时。新生的线程对象属于新建状态。RUNNABLE 可运行状态/运行状态:处于新建状态的线程执行start()方法后,进入线程队列等待CPU时间片,该状态具备了运行的状态,只是没有分配到CPU资源。当就绪的线程分配到CPU资源便进入运行状态,run()方法定义了线程的操作。BLOCKED 阻塞状态:线程在排队等待CPU资源,如轮到此线程则会自动进入运行状态。

2023-10-28 12:48:01 65 1

原创 哈夫曼树及使用哈夫曼编码压缩

哈夫曼编码(Huffman coding)是一种可变字长编码(Variable Length Coding,VLC)技术,它可以将不同长度的信息符号进行编码,使得出现频率高的符号使用较短的编码,而出现频率低的符号则使用较长的编码,从而使得编码后的二进制序列的平均长度最短。这个编码方式的实现需要使用到哈夫曼树,具体来说,就是将字符节点从哈夫曼树的叶子节点开始向上走到根节点,若走过的路径左转则编码为0,右转则编码为1,最终得到的编码即为这个字符的哈夫曼编码。压缩后的文件可以通过相应的解压算法还原为原始文件。

2023-10-26 11:11:34 426

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除