在linux中活动等待常见

时间:2017-08-07 15:12:43

标签: linux bash shell

我正和一位同事辩论,如果你在Linux中进行主动等待,这是不好的编程。

他比bash脚本更有经验,并且说它很常见。

例如,我们尝试在插入WiFi USB后启动bash脚本。 如果有人在这里,他会每分钟抬头看。 我将接受USB事件,当它发送WiFi时,请使用该设备启动我的脚本。

请帮助我们解决这个问题。

2 个答案:

答案 0 :(得分:2)

正如有人已经提到的,普通和坏事并不是排他性的。让我们来看看优势缺点:

听起来你正在做的事情基本上是事件驱动被动“编程”,而你的同事则主张采用投票方式。

反应式编程的优势是指某些事情应该发生的时候,即插入usb棒时。 缺点是系统需要支持这一点,即必须提供一些钩子才能启动脚本。

这意味着轮询方法通常更广泛适用和便携,但根据定义,它们(几乎)总是稍晚。如果这不是一个问题,那么轮询方法可能是有利的,因为它具有上述可移植性。

使用您的特定USB功能,听起来您已经想出了如何将脚本挂钩到udev系统。就个人而言,我会说这是要走的路。否则你要么等待一分钟让你的脚本找出插入的东西,要么增加轮询节奏,浪费越来越多的cpu周期(尽管如今,sleep并不是那么昂贵了。)

答案 1 :(得分:1)

定期民意调查通常是不可避免的,而且很常见。当它消耗太多的CPU时,它被称为主动等待,因为周期很小和/或轮询代码很重。长期存在的问题是降低了反应性。

您还应该考虑到避免定期轮询可能需要更复杂的代码,更难维护。