【简介】
延迟队列,即 DelayQueue,所以,顾名思义,首先,它是一个队列,对于队列这种数据结构,相信大家都不陌生啦!这是一种先入先出(FIFO)的数据结构,就像现实生活中排队讲究先来后到一样,普通队列中的元素都是有序的。相比普通队列,延迟队列主要多了一个延迟的属性,此时,元素何时出队不再取决于入队顺序,而是入队时指定的延迟时间,它表示该元素希望在经过该指定时间后被处理。从某种意义上来讲,延迟队列更像是一种以时间作为权重的集合。我想,单纯地介绍概念,不一定能真正深入人心,所以,请允许我举几个生活中的例子:当你在网上购物的时候,如果下单后一段时间内没有完成付款,那这个订单就会被自动取消;当你通过 Outlook 预约了会议以后,Outlook 会在会议开始前 15 分钟提醒所有与会人员;当你在网上叫外卖以后,平台会在订单即将超时前 10 分钟通知外卖小哥…这样看起来,是不是顿时觉得延迟队列的使用场景还是挺广泛的呢?