多线程(端口扫描器)是如何提高程序的执行效率的?

多线程(端口扫描器)是如何提高程序的执行效率的?,第1张

你认为多线程CPU时间片不断切换是影响多线程执行的原因,对吧。

但是呢,要知道现在CPU主频都是很快的(微秒级甚至纳秒级)裂乱,所以有一些 *** 作CPU只需要很少时间就可以完成了,其它的时间,如果没有主动调度它,CPU都处于空闲状态。比方说,TCP/UDP连接时,一方发出数据包,在等待另一方返回数据包的过程中(毫秒级)(最简单的,可以参考TCP三次握手的过程),这段时间就处于空闲状态。

这就是多线程为什么高效率的原因了, *** 作系统可以充分把这毫秒级的时间利用起来,发起另一个TCP连接,然后再在这个连接的网络延迟时间内,继续新的连接扫描……

这就是多线程的优势了,楼主忽略了多线程可以利用CPU空余时间这个关键问题,哪帆源桥态猛怕多线程之间的时间片会额外花费更多的CPU时间,但是空余时间的利用完全可以弥补这相当小的开销。

PLC一个扫描周期执行程序的迟启过程分为三个阶段,即输入采样阶段、程序执行阶段、输出刷新阶段。

(1)输入采样阶段。

在这一阶段中,PLC以扫描方式读入所有输入端子上的输入信号,并将各输入状态存入对应的输入映像寄存器中。此时,输入映像寄存器被刷断。

在程序执行阶段和输出刷新阶段中,输入映像存储器与外界隔离,其内容保持不变,直至下一个扫描周期的输入扫描阶段,才被重新读入的输入信号刷新。

可见,PLC在执行程序和处理数据时,不直接使用现场当时的输入信号,而使用本次采样时输入到映像区中的数据。一般来说,输入信号的宽度要大于一个扫描周期,否则可能造成信号的丢失。

(2)程序执行阶段。

在执行用户程序过程中,PLC按照梯形图程序扫描原则,一般来说,PLC按从左至右、从上到下的步骤逐个执行程序。但遇到程序跳转指令,则根据跳转条件是否满足来决定程序跳转地址。

程序执行过程中,当指令中涉及输入、输出状态时,PLC就从输入映像寄存器中“读入”对应输入端子状态,从输出映像寄存器“读入”对应元件(“软继电器”)的当前状态。然码颤如后进行相应的运算,运算结果再存入输出映像寄存器中。对输出映像寄存器来说,每一个元件(“软继电器洞启”)的状态会随着程序执行过程而变化。

(3)输出刷新阶段。

程序执行阶段的运算结果被存入输出映像区,而不送到输出端口上。在输出刷新阶段,PLC将输出映像区中的输出变量送入输出锁存器,然后由锁存器通过输出模块产生本周期的控制输出。如果内部输出继电器的状态为“1”,则输出继电器触点闭合,经过输出端子驱动外部负载。全部输出设备的状态要保持一个扫描周期。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12356594.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存