- 博客(16)
- 收藏
- 关注
原创 Java 常用函数式接口之Consumer接口
*** 对给定参数执行消费操作。* @param t 输入参数*/java.util.function.Consumer 接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据, 其数据类型由泛型决定。
2023-04-04 14:15:50 536
原创 图解 SynchronousQueue
需要强调一点的是,前面说 SynchronousQueue 容量为0,不存储元素,只做取与放的交换么?可是不管是用栈的非公平模式,还是用队列的公平模式,不都是装了很多元素么,这个矛盾吧其实是这样的,像,在不存在并发的情况下,放入元素时,都能放进去。即便存在并发,拿到锁,只要有位置,就可以放进元素。但,单纯的放元素,一定是会被阻塞的,即放元素这个操作不能结束。直到有其它线程来取元素时,一放一取的情况下,两者都才能成功,操作一定是成对存在的。
2023-04-03 17:48:39 239
原创 Java的Future机制详解
B图表达的是使用Future模式之后,我们主线程在invoke之后可以立即返回,去做其他的事情,回头再来看看刚才提交的invoke有没有结果。而如果使用第二个构造函数那么最后获取线程实行结果就是参数中的result,接下来让我们看一下FutureTask的run方法。方法能准确地告诉你某个字段相对于对象的起始内存地址的字节偏移量,因为是相对偏移量,所以它其实跟某个具体对象又没什么太大关系,跟class的定义和虚拟机的内存模型的实现细节更相关。get方法有两个,一个是有超时时间设置,另一个没有超时时间设置。
2023-03-31 18:26:24 2860
原创 Weakreference
当一个对象,只被weak reference指向,而没有 strong reference指向时,如果此时发生gc,则该对象一定会被回收。
2023-03-18 18:39:32 137
原创 MySQL show processlist 执行状态分析
简单解读,数据查询和执行通常只需要不到0.01秒,而网络输出通常需要1秒左右甚至更长,原本数据连接在0.01秒即可释放,但是因为前端程序未执行close操作,直接输出结果,那么在结果未展现在用户桌面前,该数据库连接一直维持在sleep状态!如果大量出现,内存,硬盘可能已经出现问题,比如硬盘满或损坏,或者执行正在进行清理 更新日志索引等,i/o压力过大时,也可能出现Free items执行时间较长的情况。很可怕的搜索语句会导致这样的情况,如果是数据分析,或者半夜的周期数据清理任务,偶尔出现,可以允许。
2023-03-11 12:55:30 1086
原创 Lock wait timeout exceeded; try restarting transaction详解
Lock wait timeout exceeded; try restarting transaction详解
2023-03-08 14:02:19 1493
空空如也
spingboot的读提交事务不生效
2023-03-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人