Java高级工程师需要弄明白的20个知识点 1、对多线程的了解,尤其是对线程池的理解,对ThreadPoolExecutor构造参数各个作用的理解、了解Fxied Pool、Cached Pool分别的作用 2、对锁的了解,synchronized、Lock接口(及其对应的实现的理解) 3、对JDK ...
分类:
编程语言 时间:
2020-07-20 10:22:43
阅读次数:
69
Thread与Task区别 任务可以返回结果,没有直接的机制可以从线程返回结果。 任务通过使用取消令牌来支持取消,但是线程没有。 一个任务可以同时执行多个线程,线程一次只能运行一个任务。 可以使用async和await关键字轻松实现异步。 新的Thread不处理线程池线程,而Task确实使用线程池线 ...
分类:
其他好文 时间:
2020-07-20 10:22:17
阅读次数:
102
单例:用于使用同一份实例(对象) 单例模式的实现: 1、方案一: class Foo: def __init__(self, name, age): self.name = name self.age = age def show(self): print(self.name, self.age) ...
分类:
编程语言 时间:
2020-07-19 23:52:16
阅读次数:
75
1、搭建环境 (1)SpringBoot2.2.1+MyBatisPlus+Sharding-JDBC+Druid连接池 (2)创建SpringBoot工程,版本2.2.1 (3)引入相关依赖 <dependencies> <dependency> <groupId>org.springframew ...
分类:
数据库 时间:
2020-07-19 17:52:14
阅读次数:
79
1、搭建环境 (1)SpringBoot2.2.1+MyBatisPlus+Sharding-JDBC+Druid连接池 (2)创建SpringBoot工程,版本2,2,1 (3)引入相关依赖 <dependencies> <dependency> <groupId>org.springframew ...
分类:
数据库 时间:
2020-07-19 17:49:08
阅读次数:
93
前景回顾第一节从零开始手写mybatis(一)MVP版本中我们实现了一个最基本的可以运行的mybatis。第二节从零开始手写mybatis(二)mybatisinterceptor插件机制详解本节我们一起来看一下如何实现一个数据库连接池。为什么需要连接池?数据库连接的创建是非常耗时的一个操作,在高并发的场景,如果每次对于数据库的访问都重新创建的话,成本太高。于是就有了“池化”这种解决方案。这种方案
分类:
数据库 时间:
2020-07-19 11:56:42
阅读次数:
93
一、线程的基本状态 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代 ...
分类:
编程语言 时间:
2020-07-18 22:35:18
阅读次数:
79
#背景 今天在学习mysql时,看到一个案例,大体来说,就是客户端报Too many connections。但是,客户端的连接池,限制为了200,两个客户端java进程,那也才400,然后mysql配置了800的连接。 mysql是在my.cnf中配置了: [root@localhost CAD_ ...
分类:
数据库 时间:
2020-07-18 15:24:03
阅读次数:
103
线段树是学不明白了…… 部分指针用法 对于这段代码, struct Node{ int a, b, c; }YJH[100], x; Node *p = YJH, *q = &x; 以下代码在使用过程中是等价的: cout << x.a << endl; cout << q->a << endl; ...
分类:
其他好文 时间:
2020-07-18 00:55:56
阅读次数:
106
什么是大事务 运行时间比较长,长时间未提交的事务就可以称为大事务 大事务产生的原因 操作的数据比较多 大量的锁竞争 事务中有其他非DB的耗时操作 。。。 大事务造成的影响 并发情况下,数据库连接池容易被撑爆 锁定太多的数据,造成大量的阻塞和锁超时 执行时间长,容易造成主从延迟 回滚所需要的时间比较长 ...
分类:
其他好文 时间:
2020-07-17 16:08:01
阅读次数:
103