深圳幻海软件技术有限公司 欢迎您!

  • 说说设计模式~委派模式

    回到目录概述委派模式(DelegatePattern)又叫作委托模式,是一种面向对象的设计模式,允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配,是一种特殊的静态代理模式,可以理解为全权代理模式,但是代理模式注重过程,而委派模式注重结果。委派模式属于行为型设计模式,不属于G

  • 用Redis实现延迟队列,我研究了两种方案,发现并不简单

    ​背景前段时间有个小项目需要使用延迟任务,谈到延迟任务,我脑子第一时间一闪而过的就是使用消息队列来做,比如RabbitMQ的死信队列又或者RocketMQ的延迟队列,但是奈何这是一个小项目,并没有引入MQ,我也不太想因为一个延迟任务就引入MQ,增加系统复杂度,所以这个方案直接就被pass了。虽然基于

  • 关于GPU场景与局限性

    GPU作为一种协处理器,传统用途主要是处理图像类并行计算任务;计算机系统面对的计算任务有着复杂而不同的性能要求,当CPU无法满足特定处理任务时,则需要一个针对性的协处理器辅助计算。GPU就是针对图像计算高并行度,高吞吐量,容忍高延迟而定制的并行处理器。本文选自“从软件算法生态看GPU发展与局限”,重

  • 五分钟搞定,实现定时任务的五种方案!

    我们在实际开发中,多多少少都会用到定时任务来处理一些问题。比如金融项目中的对账,每天定时对昨天的账务进行核对,每个月初对上个月的账务进行核对等。还比如,我们需要处理一些老数据迁移,修复一些新项目和老项目数据不兼容的问题等等。常规实现方案方案1:Timer这个目前在项目中用得较少,直接贴demo代码。

  • 线程池监控:执行超时、等待超时;执行超时数量、等待超时数量

    ​监控线程池:执行超时、等待超时;执行超时数量、等待超时数量;扩展线程池ThreadPoolExecutor的两个方法beforeExecute和afterExecute自定义Runnable记录关键节点时间关键时间节点参数:任务创建(提交)时间:submitTime任务开始执行时间:startEx

  • 供应链时效域接口性能进阶之路

    一、前言供应链时效域历经近一年的发展,在预估时效方面沉淀出了一套理论和两把利器(预估模型和路由系统)。以现货为例,通过持续的技术方案升级,预估模型的准确率最高接近了90%,具备了透出给用户的条件。但在接入前台场景的过程中,前台对我们提出接口性能的要求。以接入的商详浮层场景为例,接口调用链路经过商详、

  • 重新认识一下@Async,开启异步之路

    前言异步调用几乎是处理高并发,解决性能问题常用的手段,如何开启异步调用?SpringBoot中提供了非常简单的方式,就是一个注解@Async。今天我们重新认识一下@Async,以及注意事项简单使用新建三个作业任务:复制@ServicepublicclassTaskDemo{privatestatic

  • 读完 RocketMQ 源码,我学会了如何优雅的创建线程

    RocketMQ是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布与订阅服务。这篇文章,笔者整理了RocketMQ源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。一、创建单线程首先我们先温习下常用的创建单线程的两种方式:实现Runnable接口继承Threa

  • 事件循环机制:JavaScript被设计为单线程,那如何做到异步的呢?

    JavaScript是单线程的语言,单线程是指所有的程序路径按照一定的顺序执行,只有前面的程序执行了,后面的程序才会执行。也就是说在同一时间,JavaScript只能做一件事情,为了协调浏览器产生的各种事件、网络处理、前端渲染等行为,js的事件循环机制,即EventLoop应运而生。JavaScri

  • 这次彻底了解JavaScript执行机制

    无论你是JavaScript新手还是老手,无论你是在面试工作,还是只是做常规的开发工作,通常会发现给定几行代码,你需要知道要输出什么以及以什么顺序输出.由于JavaScript是一种单线程语言,我们可以得出以下结论:复制leta='1';console.log(a);letb='2';console

  • 面试突击:如何使用线程池执行定时任务?

    在Java语言中,有两个线程池可以执行定时任务:ScheduledThreadPool和SingleThreadScheduledExecutor,其中SingleThreadScheduledExecutor可以看做是ScheduledThreadPool的单线程版本,它的用法和Scheduled

  • 架构师如何选型分布式定时任务

    当我们的业务服务需要定时的执行业务接口时,我们就需要考虑引入定时任务,那么问题又来了,我们是选择“分布式定时任务”呢,还是“本地Job”呢。好吧,这里就从技术和架构的角度带着大家一起看一下这个问题。线程和线程池熟悉线程和线程池的技术人都应该知道,使用它们是可以实现定时功能的。RocketMQ中比较常

  • 几种主流的分布式定时任务,你知道哪些?

    单点定时任务JDK原生自从JDK1.5之后,提供了ScheduledExecutorService代替TimerTask来执行定时任务,提供了不错的可靠性。复制publicclassSomeScheduledExecutorService{publicstaticvoidmain(String[]a

  • Node.js 的微任务处理(基于Node.js V17)

    前言:Node.js的事件循环已经老生常谈,但是在Node.js的执行流程中,事件循环并不是全部,在事件循环之外,微任务的处理也是核心节点,比如nextTick和Promise任务的处理。本文介绍Node.js中微任务处理的相关内容。网上文章和很多面试题中有很多关于Promise、nextTick、

  • GitHub移动App上线:四大特性,手机端无缝完成git任务

    去年,GitHub官方预告了移动端app的开发情况。最近这一app终于和开发者见面了。除了承诺过的暗黑模式外,app还有多项新特性,开发者也不用随时随地被绑在电脑前。GitHub是非常好用的代码版本托管平台,几乎没有开发者不知道它。但是,一直以来用户都希望官方能够出品移动端app,方便在没有pc的场

  • 实现最简单的分布式任务调度框架

     前段时间,公司要改造现有的单节点调度为分布式任务调度,然后就研究了目前市面上主流的开源分布式任务调度框架,用起来就一个感觉:麻烦!特别是之前在一个类里写了好多个调度任务,改造起来更加麻烦。我这人又比较懒,总感觉用了别人写好的工具还要改一大堆,心里就有点不舒服。于是我就想自己写一个框架,毕

  • JavaScript基础——你真的了解JavaScript吗?

     什么是JavaScript?做为前端开发,你是否问过自己或者思考过什么是JavaScript吗?JavaScript有什么特点?小编认为,在你想深入一门语言,必须要清楚理解这门语言有什么特点和其中背后的运行机制,这是学好一门语言的基础。JavaScript是一个单线程、非阻塞、异步、解释

  • 聊聊JavaScript中调用栈

    1:基本概念栈(stack):用来保存简单的数据字段。堆(heap):用来保存栈中简单的数据字段对指针的引用。队列:是一种先进先出的线性数据结构。函数的调用的进栈和出栈的顺序,遵循先进后出的原则。空间分配:堆:一般由程序员释放,如果程序员不释放就会在结束时由OS回收;​栈:一般由操作系统自动分配释放

  • 3年工作经验,工作中还不会使用多线程?阿里P6:别慌,我都总结好了

     掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。经典面试题面试问题1:Java的线程池说一下,各个参数

  • 直接上手!Redis在海量数据和高并发下的优化实践

    Redis对于从事互联网技术工程师来说并不陌生,几乎所有的大中型企业都在使用Redis作为缓存数据库。但是对于绝大多数企业来说只会用到它的最基础的KV缓存功能,还有很多Redis的高级功能可能都未曾认真实践过。来自掌阅的工程师钱文品将为大家带来:《Redis在海量数据和高并发下的优化实践》的主题分享

推荐阅读