- 博客(33)
- 收藏
- 关注
原创 橙芯创想:香橙派AIPRO解锁升腾LLM与Stable Diffusion的创意密码
在科技的浪潮中,一场融合智慧与创意的盛会正在启幕,《香橙派AIPRO解锁升腾LLM与Stable Diffusion的创意密码》引领你步入一个全新的维度。握住香橙派AI Pro开发板,如同掌握了一把通往未来的钥匙,不仅驾驭着ChatCLM模型,更将Stable Diffusion的力量纳入掌中,从零开始编织属于自己的智能织锦。
2024-07-17 11:03:34
1106
原创 ONLYOFFICE 桌面编辑器 8.1 版发布:全面提升文档处理效率的新体验
最近,ONLYOFFICE 隆重推出了桌面编辑器的 8.1 版本,带来了众多实用的新功能和改进。这一版本的更新旨在全面提升用户的文档处理效率和使用体验,让每一个细节都更加便捷和智能。无论是工作中的复杂文档处理,还是日常的文件编辑,ONLYOFFICE 8.1 都为用户提供了更加流畅、高效和人性化的解决方案。让我们一起来看看这些令人期待的全新功能和改进,感受科技进步带来的卓越体验。
2024-06-24 13:44:16
961
原创 【灵动之链】打造高效处理架构的双轨组合模式实战
本教程旨在阐述两种不同的组合模式实现方式,重点在于如何构建灵活的处理链,以适应不同场景下的需求,如单据处理与工作流调度。我们将基于提供的设计思路,重新定义类名并实施脱敏处理,以保护具体业务逻辑细节。上述代码展示了两种不同场景下组合模式的实现策略。单据处理系统侧重于通过注解和反射简化配置,增强灵活性;而工作流调度系统则通过明确的职责分离和构造注入来确保任务的有序分发与处理。两者均体现了组合模式的核心思想——将请求沿着处理器链传递,直至被适当处理。
2024-06-12 15:53:43
704
原创 记区块链-比特币的疑点解答
事实上,这种情况是可以存在的,不过毫无意义,因为每笔交易都存在一笔交易费,矿工打包交易可以获得一定的比特币奖励,当所有的比特币都被挖出来的时候,就需要靠交易奖励维持比特币系统的运行了。除了随机数之外,还可以微调时间,因为比特币对时间要求没有那么高,重要的是,还存在一段自定义的信息,他可以一直影响hash,可以在里面写任何东西,这就极大的增加了未知区域。并不会,因为当x挖矿成功时,y需要x的hash,才能挖矿成功。不需要的,UTXO保存未花费的交易,大小可能几百GB,一个硬盘即可装下。
2023-11-08 12:01:54
150
原创 MySQL索引专项复习
减少回表次数,没有索引下推的时候,一个范围查询使用二级索引,第一次查询了一个范围的主键,假设查询到10条数据,那么需要回表十次,如果使用索引下推,那么只需要回表一次,就可以拿到十条数据。在InnoDB中,会为每一张表创建一个主键索引,如果没有明确的主键索引,会使用一个隐藏(ROW ID)的、自动生成的主键来创建索引。当我创建n个字段的联合索引时,若想使用索引查询,查询条件必须使用第一个字段,因为联合索引是按照字段顺序排序的,没有第一个字段就是乱序。索引只有一个字段,即使是中文,构成的B+树也是有序的。
2023-11-02 11:57:34
126
原创 nacos入门教程
nacos官方下载地址在github,直接去搜就行,gitee有同步得,但是笔者没有找到server服务,只有源码,安装这块可以自行百度。多级分类有利于管理多个实例,集群通过地名划分有利于就近负载,提高速度,服务时为了统一管理。服务默认集群DEFAULT,也就是没有集群,通过cluter-name配置,名字自定义。nacos默认是集群模式,修改下面的地方改为单机,找不到看相对位置,默认没有,需要新建一个,每个注册到nacos的服务需要一个name,打开这些注释就行,记得修改数据库配置,找不到的观察行数。
2023-11-02 11:57:18
261
原创 考研真题)某银行提供了 1 个服务窗口和 10 个供顾客等待时使用的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾
(考研真题)某银行提供了 1 个服务窗口和 10 个供顾客等待时使用的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下。请添加必要的信号量和 P、V 操作或 wait()、signal() 操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。从取号机上获得一个号码;process 营业员 {process 顾客 {
2023-11-02 11:54:57
4216
3
原创 3 个进程 P1、P2、P3 互斥地使用一个包含 N(N > 0)个单元的缓冲区。P1 每次用 produce() 生成一个正整数,并用 put() 将其送入缓冲区的某一空单元中 ;P2每次用 get
3 个进程 P1、P2、P3 互斥地使用一个包含 N(N > 0)个单元的缓冲区。P1 每次用 produce() 生成一个正整数,并用 put() 将其送入缓冲区的某一空单元中;P2每次用 getodd() 从该缓冲区中取出一个奇数,并用 countodd() 统计奇数的个数;P3 每次用geteven() 从该缓冲区中取出一个偶数,并用 counteven() 统计偶数的个数。请用信号量机制实现这 3 个进程的同步与互斥活动,并说明所定义的信号量的含义。
2023-11-02 11:53:57
1847
原创 关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
先介绍几个maven标签modules:用于添加子模块properties:自定义版本信息dependencyManagement:依赖管理,只是做声明,不会真的引入依赖三种版本管理方式在properties中定义版本号,子模块使用${}引入即可在dependencyManagement中声明依赖信息,子模块直接引入,不需要写版本号在properties定义版本,在dependencyManagement中声明,最后在子模块引入笔者的一些最佳实践。
2023-08-13 19:11:17
142
原创 线程池ThreadPoolExcutor源码剖析---工作原理
worker里面有一个线程,通过内部的工厂来创建线程,还有一个fristtask,firstTask是传入的第一个任务,如果非空,那么线程在启动初期立即执行这个任务,也就对应核心线程创建时的情况;因为如果核心线程满了就创建新的线程去执行,达到最大线程数之后再放入队列,那么新创建线程就需要获取全局锁,对性能有很大的损耗。线程池是一中池化技术,内部维护一定数量的线程,当有任务体提交的时候可以直接执行任务,避免了线程的创建和开销损耗。当前线程少于核心线程,创建新的线程执行任务。队列满了,创建新的线程。
2023-08-11 11:05:48
590
2
原创 23中设计模式全讲
本教程尽量使用通俗易懂的话语来讲明白23种设计模式,其中生产型5种,结构型7种,行为型11种。正式进入教学之前先看六大原则 总则是开闭原则。
2023-08-10 17:45:04
458
原创 spring-三级缓存-生命周期-spring事务-IOC-AOP
Spring是个轻量级的框架,通过IOC达到松耦合的目的,通过AOP可以分离应用业务逻辑和系统服务进行内聚性的开发,不过配置各种组件时比较繁琐,所以后面才出现了SpringBoot的框架。首先需要给这个异常类加上@ControllerAdvice注解,然后定义一些用户捕捉不同异常类型的方法,在这些方法上面添加@ExceptionHandler(value=异常类型.class)和@ResponsBody注解,方法参数是HttpServerRequest和异常类型,然后对异常消息进行处理。
2023-08-08 10:41:40
484
原创 JUC多线程-线程池-Thredalocal-CAS-AQS-死锁
AQS是一个抽象类,可以用来构造所和同步类原理三个核心组件,一个是state代表加锁状态初始值为0,一个是获取到锁的线程,还有一个阻塞队列。当有线程想要获取锁的时候,会以CAS的形式将state变为1,CAS成功之后将加锁线程设为自己,当其他队列来竞争锁时会判断state是不是0,不是0再判断加锁线程是不是自己,不是自己就把自己放入阻塞队列,这个阻塞队列是双向链表实现的。可重入锁的原理就是每次加锁时判断一下加锁线程是不是自己,是的话state+1,释放锁的时候就将state-1。
2023-08-08 10:35:53
122
原创 java基础-hashmap-io
equals是Object的方法,底层还是==实现的,但是有的类重写了equals方法,例如string,重写之后比较的值,如果重写了equals一定要重写hashcode,如果只重写equals不重写hashCode,会在某些场景下导致程序异常执行,也会降低hash类型的集合的效率。默认容量为16,负载因子为0.75,当HashMap中元素个数超过容量*负载因子的时候,数组长度变为两倍,数组长度达到64,链表长度达到8的时候扩容为红黑树。按照操作单元分:字节流和字符流。按照流向分:输入流和输出流。
2023-08-08 10:18:33
304
原创 深入理解AQS队列同步器原理-从ReentrantLock的非公平独占锁实现来看AQS的原理
AQS继承自AbstractOwnableSynchronizer,里面包含一个当前获取锁的线程和get/set方法两个重要指针,双向链表的头尾指针两个静态类,也就是AQS支持的两种模式,共享和排他还存在一个conditionNode类继承了Node,nextWaiter指向下一个指针,JDK9和JDK17在这里实现不同,JDK9是Node没有子类,采用nextWaiter标记共享排他,并且存在三个构造函数,这里采用三个子类实现。
2023-08-04 10:32:41
814
3
原创 详解缓存雪崩、缓存击穿、缓存穿透问题,一文掌握,干货不断
当使用缓存系统(如 Redis)作为后端存储来加速应用程序的读取性能时,可能会遇到一些缓存相关的问题,包括缓存击穿、缓存穿透和缓存雪崩。总结:都是高并发的情况下大量请求打到数据库问题描述解决缓存击穿热点key失效加锁、短期的过期时间缓存穿透查询不存在数据布隆过滤器、缓存null缓存雪崩大量缓存同时过期随机过期时间、多级缓存这是对作者最好的鼓励哦😍。
2023-07-30 17:27:02
270
1
原创 全网最全httpruner自动化测试教程 全是干货
2.x版本执行hrun --startproject 项目名称3.x和4.x请执行httprunner --startproject 项目名称脚手架类似vue的脚手架,默认给了一个最基本的项目格式文件/夹意义api独立定义的接口 yml/json 文件reports执行后自动生成的测试报告文件testcases测试用例文件testsuites测试用例集文件.env定义环境变量.gitgnore定义托管到git时忽略的文件编写外部处理函数,可以在用例子中被调用。
2023-07-21 15:55:35
971
1
原创 RabiitMQ的五种模式
一个生产者一个消费者无需交换机,RabbitMQ会通过默认的交换机将消息投递到指定的队列,这是一种Direct类型的交换机,队列与它绑定时的binding key就是队列的名称。
2023-07-20 21:12:08
247
1
原创 mysql事务隔离级别MVCC
例子:事务A修改修改余额为100,但是没有提交的时候事务B查询了,支付宝转账卡住了退出,再进来转账,看见余额少了,其实没有少,这就是脏读。Innodb默认事务隔离级别解决了不可重复读,有脏读(一个事务中有两次读取的数据不一样,针对的是集合数据,而非一条数据)读比写多,写的时候需要加锁,这就导致性能低下,需要无锁去读,于是就有了多版本,读写发生在不同的数据版本。事务隔离级别仅仅在并发的情况讨论,例子中的事务B多发生在事务A执行的过程中,请读者仔细判断。ab执行事务,b回滚把a的数据也回滚了。
2023-06-17 20:06:05
86
1
原创 mybatis参数报错Parameter ‘docId‘ not found. Available parameters are [arg1, arg0, param1, param2]
mapper层有多个参数的时候应该使用parm注解,注意导包导入mybatis的包,笔者就是此处导报错误。
2023-02-25 16:39:51
153
原创 @RequestParam()和@PathVariable()的区别
PathVariable主要用于接收http://host:port/path/{参数值}数据。@RequestParam主要用于接收http://host:port/path?参数名=参数值数据,这里后面也可以不跟参数值。用@RequestParam请求接口时,URL是:http://www.test.com/user/getUserById?用@PathVariable请求接口时,URL是:http://www.test.com/user/getUserById/2。
2023-02-20 16:34:02
125
原创 @RequiredArgsConstructor(onConstructor_ = @Autowired)报错
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错解决
2023-01-13 16:02:24
599
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人