- 博客(14)
- 收藏
- 关注
原创 并发包中的有界、无界队列
ArrayBlockingQueue:有界队列。底层是一个final修饰的数组,队列的边界由数组的大小决定。当创建时需要指定容量。 LinkedBlockingQueue:有界队列。如果不指定容量,容量大小默认为Integer.MAX_VALUE,即成为无界队列。 SynchronousQueue:内部容量是1。每个删除操作都要等待插入操作,反之每个插入操作也都要等待删除动作。 PriorityBlockingQueue 是无边界的优先队列,虽然严格意义上来讲,其大小总归是要受系统资源影响。 Del
2021-06-28 10:32:41
443
原创 springboot2.2.1版本连接mysql问题
报错:Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure解决方案:1、可能是mysql服务没有开启,net start mysql;2、url中没有指明所要访问的database,在我的url中我要访问的是schema数据库。spring.datasource.url=jd
2021-05-21 09:57:23
298
转载 MP实现乐观锁
https://blog.csdn.net/qq_38408785/article/details/104143242MP实现乐观锁,实现线程安全
2021-04-15 21:53:02
207
原创 MyBatis Plus自动填充
当项目需要给某些字段使用相同的方式进行填充时,可以使用Mybatis Plus的自动填充。1、在数据库中增加需要自动填充的字段添加createTime和updateTime两个字段2、实体类修改在实体上增加字段并添加自动填充注解://当插入时,自动填充@TableField(fill=FieldFill.Insert)private Date createTime;//当插入和修改时,自动填充@TableField(fill=FieldFill.Insert_UPDATE)
2021-04-15 21:38:40
133
原创 软件访问硬件的几种方式
学习于CodeSheep分享笔记。软件访问硬件就是一种I/O操作。直接访问用户进程直接控制主存或CPU和外围设备之间的信息传递。又称为忙/等待方式。中断驱动为了减少直接访问方式下CPU的等待时间,同时提高系统的并行能力,系统引入中断机制。当外围设备正常操作结束或异常结束时向CPU发出中断请求。在 I/O 设备输入每个数据的过程中,由于无需 CPU 的干预,一定程度上实现了 CPU 与 I/O 设备的并行工作。DMA直接内存访问为了进一步减少 CPU 对 I/O 操作的干预,防止因
2021-04-12 15:04:02
1101
原创 热点行更新导致的性能问题
两阶段锁协议:在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放。加锁有助于隔离,但是会给性能带来影响。不同线程在执行不同的事务时,会因为互相等待对方的资源而陷入死锁状态。当出现死锁时,有两种策略:1、直接进入等待直到超时,但是对于在线服务而言,等待时间往往是无法接受的。如果通过修改innodb_lock_wait_timeout参数将等待时间减少,就会误伤正常的事务。2、发起死锁检测,主动死锁检测在发生死锁的时候,是能够快速发现并进行处理的,但
2021-03-25 10:10:52
421
原创 尚硅谷JVM视频中的JVM栈面试题
记录的是尚硅谷JVM视频中介绍的面试题1、举例栈溢出的情况?StackOverflowError,可以通过-Xss设置栈的大小;2、调整栈大小,就能保证不出现溢出吗?不能。可能会不溢出;但是如果程序陷入死循环,增大栈的大小,只能使得栈溢出出现时间延后,但是依旧会出现栈溢出。3、分配的栈内存越大越好吗?不是。会挤占其他结构的空间。4、垃圾回收是否会涉及到虚拟机栈吗?不会。垃圾回收出现在方法区和堆空间。 出现error 出现垃圾回收 程序计数器 不会.
2021-03-24 22:03:35
115
原创 InnoDB索引
每一个索引在InnoDB里面对应一棵B+树。主键索引的叶子节点存的是整行数据。在InnoDB里,主键索引也被称为聚簇索引(clustered index)。主键索引的B+树,叶子节点中存储的全部的信息。非主键索引的叶子节点内容是主键的值。在InnoDB里,非主键索引也被称为二级索引(secondary index)。非主键索引的B+树,叶子节点中存储的是该索引的字段的值+主键的值。所以如果是select *,要查找全部的信息,就需要先查找该非主键索引树得到对应的主键值后再去主键索引的树中查找全部的信
2021-03-24 19:26:01
202
原创 事务的隔离级别
事务的ACID属性中的隔离性是为了防止多个事务同时执行时,互相影响造成问题。常见的问题有:脏写(Dirty Write) 、脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)。脏写如果一个事务修改了另一个未提交事务修改过的数据,那就意味着发生了脏写。脏读如果一个事务读到了另一个未提交事务修改过的数据,那就意味着发生了脏读。不可重复读(Non-Repeatable Read)如果一个事务只能读到另一...
2021-03-24 11:14:43
86
原创 ArrayList和Vector的比较
相同点:两者都实现了List接口,底层都是数组实现不同点:ArrayList是线程不安全的,Vector是线程安全的。Vector关键方法都有synchronized修饰符修饰,导致使用效率较差。 扩容方面:ArrayList扩容为原来的1.5倍;Vector再不指定增长因子的情况下,默认扩容为原来的2倍。 分配空间:ArrayList在调用add方法时再分配空间;Vector在new vector()创建对象实例时就分配了空间。...
2021-03-23 16:23:12
111
原创 MySQL基础架构
MySQL可以被分为Server层和存储引擎层两个部分。Server层简介Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层简介存储引擎层直接处理数据。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了默认存储
2021-03-22 20:45:06
89
1
原创 checkpoint
Redo日志用以记录事务对数据库做了哪些修改。LSN:日志序列号,初始值为8704;能够根据lsn值的大小判断Redo日志产生的先后顺序,值越小即日志产生的时间越早。flushed_to_disk_lsn:用以标记当前log buffer中有哪些日志已经被刷新到磁盘中。由于Redo日志文件组容量是有限的,所以设计者选择循环使用redo日志文件组中的文件。这就将造成日志追尾的问题。redo日志是为了系统崩溃后回复脏页用的,但是如果脏页还没有被刷新到磁盘而这部分的日志内容却已经被覆盖的话..
2021-03-22 15:15:52
112
原创 ACID与CAP的理解
ACID特性在学习关系型数据库的时候,需要遵循ACID四种特性,其中:1、A (Atomicity) 原子性。原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。2、C (Consistency) 一致性。一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。3、I (Isolation) 独立性。所谓的独立性是指并发的事务之间不会互相影响,如果
2021-03-21 15:19:26
671
1
原创 ST-GCN demo运行记录
Pytorch已经下载完成,需要下载其他的python库打开requirements.txt文件所在文件夹,使用cmd,输入pip install语句:使用pip list语句可以查询已下载的python库:根据作者给出的readme文件,接下来是installation,首先是使用cmd,输入cd <torchlight文件的目录>(进入到torchlight文件夹中);然后输入python setup.py install,运行这个.py文件;cd....
2021-03-20 14:50:01
893
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人