获得徽章 0
- 以前我选择软件、工具的标准是,免费、开源,好不好用倒是其次。免费等于生气,至今依然是第一标准,意味着我不会去用破解软件。但是目前我现在斟酌的就是这个开源与否。目前其实也有不少收费软件放低身段,提供免费版给我们使用,比如 NativeCat、VMware 等。虽然是阉割版或者各种限制,但确实也是足够好用,好用的一大原因是:它们都是 C/C++写的!对比开源社区的通过跨平台 Web 技术制作桌面软件,无论资源占用还是运行效率, C/C++ 好的不是一点半点!展开评论1
- Java 延时任务
通俗地讲,一个定时器就搞定。但实际来说要考虑的问题很多,例如线程安全、并发之类的。
# 时间轮算法实现
1996 年 George Varghese 和 Tony Lauck 的论文《Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility》中提出了一种时间轮管理 Timeout 事件的方式。其设计非常巧妙,并且类似时钟的运行,如下图的原始时间轮有 8 个格子,假定指针经过每个格子花费时间是 1 个时间单位,当前指针指向 0,一个 17 个时间单位后超时的任务则需要运转 2 圈再通过一个格子后被执行,放在相同格子的任务会形成一个链表。
相比 DelayQueue 的数据结构,时间轮在算法复杂度上有一定优势,但用时间轮来实现延时任务同样避免不了单点故障。
# 参考
- [如何实现延迟任务,这11种方式才算优雅!](www.cnblogs.com)
- [JAVA中延时任务的几种实现方式 ](ost.51cto.com)
- [延迟任务的实现总结](www.cnblogs.com)
- [Java延时订单处理(上)- - 抛砖引玉](blog.csdn.net) DelayQueue,参考了这个
- [基于Redis实现DelayQueue延迟队列设计方案(附源码)](blog.csdn.net)
展开评论1 - 当前 SqlMan 使用的 Spring 自带的表达式引擎 SpEl,功能各方面都不错,就是有个依赖的包袱:单纯看 SpEl 的模块 spring-expression 的话,大小是1.3MB左右。但是其还依赖了 spring-core 和 spring-jcl,再含这两个的话,大小 7.4MB左右。作为一个本身精巧的数据库工具却依赖那么大的家伙,好像有点说不过去。于是我考虑别的表达式引擎,也没啥轻量级的,连最熟悉的老朋友 JUEL(JSP 时代的表达式)都600kb~
juel.sourceforge.net
github.com 没办法,自己写吗?曾经写过 JSON 解析器,这难度应该不比 JSON 的大,只是比较耗费时间和脑力……(不错的选项文章:《Java表达式引擎选型调研分析》
developer.jdcloud.com)
展开评论1 - 无法登录暗黑破坏神4游戏,提示网络错误
ping 美服 us .actual .battle .net,得到IP地址;编辑host文件,在最后一行添加IP+prod. actual .battle .net后保存。就能正常运行了评论1 - Win10资源管理器不显示 H265 视频的缩略图,解决方法:下载 K-lite Codec Standard 即可
www.codecguide.com。苹果 HEIF 照片不显示:下载
copytrans.studio
评论1
![[擦汗]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_38.2d77d3e.png)