- 博客(14)
- 收藏
- 关注
原创 ReentrantLock lock方法解析
问题:1 锁重入的上限是多少;2 独占如何实现;3 线程什么情况下才可以尝试加锁;4 线程在入队之前有多少次可以尝试加锁的机会;5 线程如何挂起锁的分类 ReentrantLock 支持公平锁和非公平锁ReentrantLock lock = new ReentrantLock(true); 公平锁ReentrantLock lock = new ReentrantLock(false); 非公平锁 默认是非公平锁公平锁的实现较非公平锁略为复杂,今天解析一下公平锁..
2021-08-25 14:31:43
609
原创 Syschronized锁升级过程
首相说明轻量级锁适合的场景是多个线程轮流占用资源,而偏向锁适用的场景是一个线程反复占用资源前提:锁对象是偏向锁状态并且锁对象是匿名偏向状态(在此状态下thread_ptr为NULL(0),意味着还没有线程偏向于这个锁对象)偏向锁加锁流程1 向当前线程的栈内添加一个锁记录,让锁记录中的锁引用字段指向锁对象(这一步相当于读操作,即使并发也无所谓,所以这一步并没有使用CAS)2 通过CAS设置锁对象对象头中markWord的线程Id为自己偏向锁解锁先将当前线程栈内和当前锁对象相关的锁记录全部拿到,
2021-05-30 20:20:48
309
1
原创 mysql5.7如何设置ssl远程登录模式
1用root用户登录mysql客户端执行SHOW VARIABLES LIKE '%ssl%';Output+---------------+----------+| Variable_name | Value |+---------------+----------+| have_openssl | DISABLED || have_ssl | DISABL...
2019-08-30 14:29:57
1824
原创 centOS下Mysql5.7主从数据库配置
mysql主从复制原理1.首先master将数据更新记录到二进制binlog文件2.slave通过I/O线程向master请求binlog日志文件指定位置之后的内容3.master接收到slave的io请求之后,就会从binlog相应的位置点开始,给slave传日志4.slave接收到日志后,会写入本地的relay log中继日志中5.slave通过sql线程读取中继日志的内容,在数据库...
2019-08-26 16:40:02
241
原创 centOs下源码安装mysql5.7
1.https://dev.mysql.com/downloads/mysql/ 先去官网下载mysql-5.7.27-linux-glibc2.12-x86_64.tar版本的压缩包到本地,然后上传的到服务器,我直接放到了/usr/local/目录下并解压,修改解压文件名字为mysql,并且在mysql目录下手动建立data目录。2为了安全安装mysql,所以避免用root用户安装,我们新建...
2019-08-26 16:02:42
159
原创 logback在springboot中配置和打印日志的工具类
<?xml version="1.0" encoding="utf-8"?><configuration> <springProperty scope="context" name="logName" source="spring.application.name"/> <appende
2018-09-19 10:31:05
1942
原创 Java 获取当前类名和方法名的实现方法
Java 获取当前类名和方法名的实现方法 这里提供了四种方法并比较,大家需要的可以参考下, 为了测试各个函数,如果手动打印每个类名、函数名,那么多函数的话能把人累死,Java早已准备好了一堆记录自身的函数。获取类名:? 1 2 3 4 5 6 7 8 9 10 11 12...
2018-09-17 13:55:35
1949
1
原创 mysql备份或迁移
逻辑备份:mysqldump全量备份所谓逻辑备份就是把数据库表结构+数据以sql的形式导出。以下是备份命令。mysqldump -uroot -ppwd --databases databasename --tables tablename --single-transaction --flush-logs --master-data=2 >/home/work/downlo...
2018-08-21 19:42:48
12511
原创 第六章 微信公众号开发之主菜单点击事件
之前写了怎么配置主菜单以后二级菜单里面的属性,今天来讲解一下怎么使他们生效,先看一下官方文档怎么描述的: 用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。点击菜单拉取消息时的事件推送推送XML数据包示例:<xml><ToUserName>< ![CDATA[toUser] ]></ToUs...
2018-07-19 11:36:16
2896
原创 第五章 微信公众号开发之关注事件
当我们利用服务器和代码成为高级开发之后,微信公众平台编辑好的当用户关注时发送给用户的语句就会失效,此时应该怎么办,接下来,用代码来来教你实现。首先先看一下官方的开发文档:关注/取消关注事件用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。为保护用户数据隐私,开发者收到用户取消关注事件时需要删除该用户的所有信息。微信服务...
2018-07-17 17:30:12
2404
原创 第四章 微信公众号开发之验证消息的确来自微信服务器
之前直接写了怎么开发,忘了写怎么知道验证消息来自微信服务器,否则无法进行开发,先来看一下官方的开发文档怎么描述的接入微信公众平台开发,开发者需要按照如下步骤完成:1、填写服务器配置2、验证服务器地址的有效性3、依据接口文档实现业务逻辑下面详细介绍这3个步骤。第一步:填写服务器配置登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配...
2018-07-17 16:58:51
3753
7
原创 第三章 微信公众号开发之模板消息
模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。 关于使用规则,请注意:1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;2、需要选择公众账号服务所...
2018-07-16 11:02:20
753
原创 第二章 微信公众号开发之主菜单的设计与实现
注意:1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。2、一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。3、创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则...
2018-07-13 10:49:52
1544
原创 第一章 微信公众号开发之获取全局token
本文介绍微信公众平台下Access Token的概念及获取方法。一、Access Tokenaccess_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token...
2018-07-12 11:22:56
3162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人