产品中心
1769-RTB40AIO
1769-RTB40AIO深入研究某个现有框架的实现原理,例如:读源码
将一个传统技术在分布式领域很好地延伸,很多成熟的传统技术可能在单机 work well,但分布式场景需要很多额外的考虑。
站在设计者的角度,如果从零开始设计一个轮子,怎么利用合适的算法、数据结构,去实现它。
回到这篇文章的主题,我首先会围绕第三个话题讨论:设计实现一个定时器,可以使用什么算法,采用什么数据结构。接着再聊聊第一个话题:探讨一些的定时器实现方案。
2 理解定时器
很多场景会用到定时器,例如
使用 TCP 长连接时,客户端需要定时向服务端发送心跳请求。
财务系统每个月的月末定时生成对账单。
双 11 的 0 点,定时开启开关。
定时器像水和空气一般,普遍存在于各个场景中,一般定时任务的形式表现为:经过固定时间后触发、按照固定频率周期性触发、在某个时刻触发。定时器是什么?可以理解为这样一个数据结构:
存储一系列的任务集合,并且 Deadline 越接近的任务,拥有越高的执行优先级
在用户视角支持以下几种操作:
NewTask:将新任务加入任务集合
Cancel:取消某个任务
在任务调度的视角还要支持:
Run:执行一个到底的定时任务
判断一个任务是否到期,基本会采用轮询的方式,每隔一个时间片 去检查 近的任务 是否到期,并且,在 NewTask 和 Cancel 的行为发生之后,任务调度策略也会出现调整。
说到底,定时器还是靠线程轮询实现的。
1769-RTB40AIO
National Instruments TBX-68 I/O Connector Block; DIN
National Instruments NI PCI-GPIB IEEE 488.2 Card 188513
NATIONAL INSTRUMENTS NI PXI-6224 32 ANALOG INPUTS DAQ
National Instruments 182887E-01 ISA 488.2 GPIB/TNT Card
National Instruments PCI-6713 NI DAQ Card Analog Output
National Instruments PCI-MIO-16E-1 (6070E) NI DAQ Card
National Instruments NI PCI-5102 Card
National Instruments PCI-MIO-16E-4 PCI-6040E
National Instruments (NI) PXI-6071E multifunction I/O
National Instruments PCI-GPIB/+ 183617C-01
National Instruments NI PXI-5412 w/32MB Waveform Memory
National Instruments PCI-6602, 8 32-Bit Up/Dn Counters
National Instruments. PXI-5112. Digitizer
National Instruments LabVIEW Basics Training - 2 CD set
NATIONAL INSTRUMENTS NI PCI-6239 MF DAQ
National Instruments PCI-6115 NI DAQ Card 64Mb 10MS/sec
NATIONAL INSTRUMENTS PCI-6033E I/O BOARD DAQ
National Instruments PCI-DIO-32HS (PCI-6533) Pattern IO
NATIONAL INSTRUMENTS DAQCard-6024E for PCMCIA + CABLE
NATIONAL INSTRUMENTS NI PXI-6225 MULTIFUNCTION DAQ
National Instruments PCI-MIO-16XE-10 High-Res I/O Board
National Instruments PXI-5600 RF Downconverter Perfect!
National Instruments PCIe-6361 X Series Data Acqu., NI
NATIONAL INSTRUMENTS PCI-MIO-16E-4 Card
National Instruments PXI-7344; 4-Axis Motion Controller
NATIONAL INSTRUMENTS NI PCI-6014 MULTIFUNCTION DAQ CARD
National Instrument PCI MIO 16XE-50 DAQ 183454E-01
NATIONAL INSTRUMENTS NI PCI-6233 DIO SINKING BANK ISOLA
National Instruments 763061-03 X2 GPIB Cable
National Instruments PCI-MIO-16E-1 PCI-6070E AS-IS *
National Instruments PCI-6512 Isolated 64-Ch Outputs
NATIONAL INSTRUMENTS 182920J-01 PCI-DIO-96 Digital I/O
National Instruments PCI-6110E 4Ch,5MS/s,12-Bi?t Module
National Instruments nuDrive 4-Axis Servo Amplifier
NATIONAL INSTRUMENTS PCI-6035E CARD
National Instruments PC-DIO-24 I/O Board, 180710C-01
National Instruments PCI-485/8; 8-port RS-485 w/Cable
NATIONAL INSTRUMENTS NI BNC-2095 32 BNC MODULE
National Instruments NI SH100-100-F Flex, 1-Meter Cable
NATIONAL INSTRUMENTS NI PXI-8156B EMBEDDED CONTROLLER
NATIONAL INSTRUMENTS NI PCI-7030/6533 RT MF DAQ
National Instruments NI PXI-8156 PXI DAQ
NATIONAL INSTRUMENTS PCI-MIO-16XE-50 DAQ CARD
National Instruments GPIB Instrument Simulator & Manual
National Instruments FP-TB-1 Terminal Base
National Instruments PCI-6512 Iso 64-Ch Outputs
National Instruments NI PXI-6722 8-Channel Analog Out