Java synchronize原理和锁优化 什么是锁优化?JDK1.5为了解决synchronize效率问题,出现了Lock锁。(Lock锁源码分析看这篇文章Java8 Lock锁详解(AQS,CAS))JDK1.6对synchronize进行了大量优化,让synchronize能够和和Lock锁性能不相上下。synchronize锁优化策略自适应自旋锁自旋就是在获取锁失败之后循环进行尝试,自适应是指动态的对循环次数进行调整。举个例子,在自适应时,如果尝试了5次能够获取到锁,且尝试5次的时间比阻塞的时间段,则使用10作为自旋次数。如果尝试了
Java8 Lock锁详解(AQS,CAS) 什么是Lock锁?Lock锁提供了的比synchronized关键字更加灵活的锁操作,是代码层面的锁操作。为什么要使用Lock锁?Lock锁和synchronized关键字的对比类型synchronized关键字Lock锁获取锁无超时时间,未获取到则阻塞等待(占用cpu资源),且无法被中断非阻塞,可以被中断,未获取到则排队,中断,可以自定义超时时间共享锁不支持读写锁ReadWriteLock支持释放锁必须在当前代码块中,因为synchronized是以{
ForkJoin框架源码分析(详细) ForkJoin框架是CompletableFuture和java8 stream,ConsurrentHashMap等并发包中使用到的框架。主要用于分片处理的场景。
微信小程序开发总结 标签1、view和div差不多2、text展示文字最好用这个,其他标签都不支持长按复制3、 iconicon可以直接用微信组件默认的图标,默认是iconfont格式的自定义的icon推荐svg sprite格式或者iconfont4、inputinput 的类型,有效值:text, number, idcard, digit, time, date 。input不需要设置lin...
ElasticSearch常用查询笔记 ES是什么elasticsearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。什么是全文检索全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。...
vant下拉刷新发送两次请求的问题 **问题:**在vant的上拉加载和下拉刷新同时使用的过程中,可能会出现下拉刷新发送了两次请求的问题**原因:**是在下拉刷新过程中,可能会触发上拉加载,导致发送两次请求。**解决方法:**所以在下拉刷新过程中,可以将上拉加载的finished设置为true,这样就无法进行上拉加载,在下拉刷新完成之后再将上拉加载的finished设置为false,...
Activiti监听器 Activiti监听器ExecutionListener:监听全局事件,start(流程启动),end(流程结束),take(经过连线)TaskListener:监听节点事件,assignment(任务分配),create(任务创建),complete(任务完成),delete(任务被删除),all(监听所有事件)ExecutionListener的用法:# 监听start和end定义在根...
Activit学习笔记 HistoryService查询:ProcessInstanceId = 工单ID = 流程实例IDString processInstanceId = historyService.createHistoricVariableInstanceQuery().processInstanceId("123") .list().get(0).getProcessInstanceId();...
emmet命令笔记 emmet命令指南<!-- html:5 --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title&a
css postion笔记 四种Position属性static(默认),relative(相对定位),absolute(绝对定位)和fixed(固定定位)static和relative会占文档流空间,absolute和fixed不会占据文档流空间。**解释:**就是absolute和fixed是可以浮动在其他的元素之上的,可以放到任何的位置,无论该位置是否有元素。static浏览器采用的的默认定位。relati...
Vue.js路由 在使用模块化的时候,路由通常被定义在index.js里面。在点击路由标签的时候,绑定的路径会找到这个组件,然后将这个组件渲染到<router-view/>标签上通过使用路由的keep-alive属性,可以在路由切换的时候,保证组件不会重复渲染。当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activate...
Vue.js路由 在使用模块化的时候,路由通常被定义在index.js里面。在点击路由标签的时候,绑定的路径会找到这个组件,然后将这个组件渲染到<router-view/>标签上通过使用路由的keep-alive属性,可以在路由切换的时候,保证组件不会重复渲染。当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activate...
Vue.js父子组件通信-自定义事件 组件props用法:props: { // 基础类型检测 (`null` 意思是任何类型都可以) propA: Number, // 多种类型 propB: [String, Number], // 必传且是字符串 propC: { type: String, required: true },...
MyBatis学习 MyBatis是什么? mybatis是一个开源的,支持自定义SQL,存储过程和高级映射的持久化框架MyBatis和JDBC的对比连接:(托管,编码实现)使用了Mybatis我们就不需要自己获取数据库连接了,而是使用mybatis托管,使用JDBC需要自己编码获取连接SQL:(隔离集中,混合分散)Mybatis将sql语句集中到一起,但是对于不相关的两个DAO类又是相互隔...
三端食堂售饭管理系统 核心技术:Servlet,JSP,Swing,HTML,CSS,JS。项目结构本项目为MVC结构,包结构如下项目功能:PCPC端能够模拟食堂售饭机售饭。每个售饭机可以选择食堂,选择机号。点击开关之后,售饭机开启,点击插卡,后台随机分配一个卡号,如果卡号在数据库中不存在,就新建一个卡号,并初始化余额为1000.0元。由于卡号是随机在1000以内分配,所以卡号的重复率还是很...
科研项目管理系统 核心技术:Mybatis,Servlet, JSP, 集合类,Swing,HTML,CSS,JS,C3P0数据库连接池项目结构:本项目为MVC项目,包结构如下:实现功能: 教师信息的CRUD,科研项目的申报,审核,验收。本系统为一个毕设项目,分为两个版本,Web版本和PC版本,界面依然很low。两个版本实现的功能一样,理论上应该用到MVC来解决不同的表现形式,...