Martian158
码龄15年
关注
提问 私信
  • 博客:13,143
    社区:1,535
    14,678
    总访问量
  • 19
    原创
  • 1,873,210
    排名
  • 2
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2009-10-30
博客简介:

Martian158的博客

查看详细资料
个人成就
  • 获得3次点赞
  • 内容获得3次评论
  • 获得10次收藏
创作历程
  • 1篇
    2023年
  • 15篇
    2020年
  • 4篇
    2018年
成就勋章
TA的专栏
  • Java进阶
    3篇
  • DB
    1篇
  • Quartz
    9篇
  • 插件
    1篇
  • Java基础
    10篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

ThreadPoolExecutor参数及运行机制

ThreadPoolExecutor参数详解
原创
发布博客 2023.12.02 ·
87 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

线程安全的无锁循环队列实现

1.要解决的问题多个生产者、多个消费者线程在内存中完成合作2.应用场景需要用到并发内存消息队列的场景,如撮合交易3.需要的基础知识CAS(CompareAndSwap)位运算4.解决思路用数组不用链表,更快保证生产、消费的持续,需是循环队列不用Syncronized、不用显示锁,更快使用AtomicReferenceArray中的CAS API,保证线程安全且更快数组长度设置为2^n,位运算计算下标,更快5.关键源码数据成员private AtomicRefer
原创
发布博客 2020.07.26 ·
1892 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

JDK8 HashMap容量计算算法分析

JDK8 HashMap容量计算算法分析1.源码/** * Returns a power of two size for the given target capacity. */static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4;
原创
发布博客 2020.07.25 ·
391 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

“数据库并发导致更新丢失”的四种解决方法

1.问题描述隔离级别:Read Commited事务A 事务Bselect amount=1000 select amount =1000 转走100块...
原创
发布博客 2020.04.12 ·
1650 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

SSO单点登录之徒手实现篇

1.环境信息Springboot 2.2.0thymeleaf2.CAS Server关键代码拦截器public class LoginHandlerInterceptor implements HandlerInterceptor { private final Logger logger = LoggerFactory.getLogger(LoginHandlerInte...
原创
发布博客 2020.04.11 ·
281 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SSO单点登录之原理篇

1.场景多个不同域名的服务,希望用户只要登录其中一个,其余访问时自动登录,即单点登录(SSO,Single Sign On)。2.CAS(Central Authentication Service)实现SSO的原理2.1关键点依赖于cookie中保存sessionIdServerA将请求重定向到CAS服务,而不是直接转发至CAS服务,这样浏览器便保存了CAS服务的cookie。访问...
原创
发布博客 2020.04.11 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

8.Quartz源码取经之线程池

1.为什么用线程池?1.1 场景有多个任务需要并发执行1.2 解决方法方法一:给每个任务在执行时再创建新线程方法一缺点:(1)创建线程耗时(2)任务多时,线程数暴增导致CPU、内存爆掉方法二:线程池,预先建立多个线程,任务到来时,从池中挑一个线程来执行任务2. Quartz中的线程池2.1 线程类//重载了Thread的run方法,执行时实际调用的是runable.run()...
原创
发布博客 2020.03.29 ·
512 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

8.Quartz源码取经之插件模式

1.为什么用插件模式?1.1 场景想创建一个开放的应用,主应用只包含标准的功能,个性化的功能交给其他开发者实现1.2 解决方法主应用不知道子应用的存在:开放API,子应用独立运行。百度地图开放API、jar依赖、SDK、小程序1都属于这种。主应用知道子应用的存在,子应用运行依赖于主应用:插件模式2.插件模式怎么实现–Quartz中的插件2.1 定义插件接口public inte...
原创
发布博客 2020.03.28 ·
254 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

7.Quartz源码取经之建造者模式

为什么用建造者模式?1. 场景成员变量多,且创建对象时,多个成员变量可以有不同组合时(类似麦当劳套餐)2. 解决方法方法一:创建多个构造函数解决,不同入参组合方法一缺点:组合数太多,需要创建的构造函数太多方法二:创建入参包含所有成员变量的一个构造函数方法二缺点:配置不同套餐时,可能会看到很多null传入方法三:只创建一个默认构造函数,里面只对需要默认值的-成员变量赋值。其余变量的...
原创
发布博客 2020.03.22 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ThreadLocal设计初衷推断

问题同一个线程内多个方法间如何共享变量?方法a类成员变量本来就是各个线程各有一份,线程内共享的。class MyThread extends Thread{ String myvar; public void run(){ //do something } public void method1(){ myvar = "hi"; System.o...
原创
发布博客 2020.03.01 ·
223 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

6.Quartz应用场景之定时任务监控

要解决的问题想知道每个定时任务有没有被执行,执行的结果怎么样解决思路通过JobListener实现定时任务历史记录额外库表#增加STATUS字段记录定时任务执行状态CREATE TABLE `my_job_details` ( `ID` int unsigned NOT NULL AUTO_INCREMENT, `JOB_NAME` varchar(190) NOT NULL,...
原创
发布博客 2020.02.29 ·
649 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

5.Quartz应用场景之配置化定时任务(多节点)

要解决的问题接上文,多节点情况下,加载jobDetail和Trigger会偶发性出现并发错误1解决思路加锁控制只有一个节点加载定时任务额外库表CREATE TABLE `my_job_load_ctrl` ( `ID` int unsigned NOT NULL, `SERVER_KEY` varchar(200) DEFAULT NULL, `IS_LOCKED` varc...
原创
发布博客 2020.02.29 ·
1270 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

4.Quartz应用场景之配置化定时任务(单节点)

要解决的问题把多个定时任务的时间规则写死在代码里,当有改动时,需要动代码。代码多、维护成本略高。解决思路引入额外的库表,把定时任务配置在库表里,应用启动时再调API配置到Quartz原生表中额外库表建表CREATE TABLE `my_job_details` ( `ID` int unsigned NOT NULL AUTO_INCREMENT, `JOB_NAME` v...
原创
发布博客 2020.02.29 ·
639 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

3.Quartz应用场景之应用重启后定时任务依然生效

默认你已掌握Springboot 工程搭建ApplicationRunner环境信息Quartz 2.3.0Springboot 2.2.0mysqlIDE:idea思路定时任务配置持久化到数据库搭建步骤创建Quartz相关库表(脚本路径如下)quartz-2.3.0-SNAPSHOT\src\org\quartz\impl\jdbcjobstore\tables_mys...
原创
发布博客 2020.02.29 ·
2764 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2.Quartz关键概念

设计理念执行的任务和时间规则分离,实现灵活组合1JobDetailTriggerScheduler个人认为实际系统中需要组合的场景不多 ↩︎
原创
发布博客 2020.02.27 ·
251 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

1.Quartz定时输出HelloWorld

默认你已掌握Springboot 工程搭建ApplicationRunner环境信息Quartz 2.3.2Springboot 2.2.0IDE:idea搭建步骤pom文件关键依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId&...
原创
发布博客 2020.02.25 ·
644 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

mirrors-jointjs-master.zip

发布资源 2019.08.04 ·
zip

mirrors-YApi-master.zip

发布资源 2019.06.28 ·
zip

ActivePerl52612601.zip

发布资源 2019.06.25 ·
zip

vue-admin.zip

发布资源 2019.05.20 ·
zip
加载更多