产品中心
A16B-1210-0591链表的实现方法比较粗糙。链表用于存储所有的定时器,每个定时器都含有interval 和 elapse 两个时间参数,elapse表示当前被tickTimer了多少次。当elapse 和interval相等时,表示定时器到期。
在此方案中,添加定时器就是在链表的末尾新增一个节点,时间复杂度是 O(1)。
如果想要删除一个定时器的话,我们需要遍历链表找到对应的定时器,时间复杂度是O(n)。
此方案下,每隔elapse时间,系统调用信号进行超时检查,即PerTickBookkeeping。每次PerTickBookkeeping需要对链表所有定时器进行 elapse++,因此可以看出PerTickBookkeeping的时间复杂度是O(N)。
可以看出此方案过于粗暴,所以使用场景极少。
排序双向链表实现
排序双向链表是在链表实现上的优化。优化思路是降低时间复杂度。
首先,每次PerTickBookkeeping需要自增所有定时器的elapse变量,如果我们将interval变为时间,那么我们只需要比较当前时间和interval时间是否相等,减少了对每个定时器的操作。
如果不需要对每个定时器进行操作,我们将定时器进行排序,那么每次PerTickBookkeeping都只需要判断第一个定时器,时间复杂度为O(1)。
相应的,为了维持链表顺序,每次新增定时器需要进行链表排序时间复杂度为 O(N)。
每次删除定时器时,由于会持有自己节点的引用,所以不需要查找其在链表中所在的位置,所以时间复杂度为O(1),双向链表的好处。
A16B-1210-0591
A16B-1210-0591
National Instruments Data Acquisition PCL848A GPIB CARD
National Instruments PCI-1411 IMAQ Frame Grabber Card
National Instruments 182801A-002 MXI-1 2Meter Cable
National Instruments PCI-MIO-16E-4 (6040E) NI DAQ Card
National Instruments NI 9481 - 4 Channel Relay
National Instruments PCI-6025E 12-bit multifunction DAQ
National Instrument cFP-TC-120 and cFP-CB-3
NATIONAL INSTRUMENTS GPIB-100 BUS EXTENDER
National Instruments AT-GPIB/TNT Plug & Play IEEE 488.2
National Instruments ELVIS USB-6251 Bundle (Academic)
NATIONAL INSTRUMENTS AT-GPIB/TNT PLUG n PLAY IEEE 488.2
National Instruments NI VXI-MXI-2 Mainframe Extender
National Instruments NI PCI-6024E Multifunction DAQ
National Instruments VXI-MXI with INTX
National Instruments Multifunction DAQ I/O PCI-6032E
National Instruments PCI-5102 Digitizer Scope DAQ Card
National Instruments Timing & Digital I/O Card PCI-6601
National Instruments MXI-4 PXI Controller PCI-8336
NATIONAL INSTRUMENT NI PXI-6533 32-BIT DIGITAL I/O INFC
National Instruments VMI-MXI Module 181045-01 Rev G5
National Instruments NI VXI-MXI Module 181045-02 Rev G6
National Instruments NI PCI-6013 16-bit analog DAQ
National Instruments NI PCI-MXI-2 Interface Card
National Instruments PCI-232/485 8-Channel RS-232 Card
NI National Instrument SCXI Adapter to DAQ 1349
National Instruments SYSFAIL VMI-MXI-2 Module 183345G
National Instruments PCI-GPIB Card IEEE 488.2, 183617F
National Instruments DAQPAD-6016 for USB and NI-DAQ
National Instruments NI PCI-GPIB IEEE 488.2
National Instruments GPIB-USB-B IEEE 488.2
National Instruments SC-2071
National Instruments AT-MIO-16E-10 Short Form Factor