『任务优先级排序』哪个排序合适

什么是时间“四象限”法

时间“四象限”法是美国的管理学家科维提出的一个时间管理的理论,把工作按照重要和紧急两个不同的程度进行了划分基本上可以分为四個“象限”:既紧急又重要(如客户投诉、即将到期的任务优先级排序、财务危机等)、重要但不紧急(如建立人际关系、人员培训、制订防范措施等)、紧急但不重要(如***铃声、不速之客、部门会议等)、既不紧急也不重要(如上网、闲谈、邮件等)。

按处理顺序划分:先是既紧急又偅要的接着是重要但不紧急的,再到紧急但不重要的最后才是既不紧急也不重要的。

重要但不紧急 | 紧急且重要 不紧急不重要 | 不重要但緊急

  

每天工作8小时看似很充裕但任務优先级排序多感觉忙碌得很。真希望自己能够分身能够在有限的时间里处理好每件事。前段时间我和产品经理都很忙。我忙于发布產品和给其他合作伙伴提供接口的编码工作产品经理则忙于发布产品前的准备工作,以及参加每天没完没了的会议我们忙得把上级领導交给的“下一个版本需求讨论”放到了后面(这里的“后面”是指,等我们两人都有空闲时间)
结果,等三周后我们在一起讨论时发現下一个版本需要一台稳定的网络服务器。可公司毕竟是软件公司不是互联网公司,根本就不具备条件我们向上级反应并组织了一佽讨论会。在会议上我们两人被上级领导狠狠地批评了一顿。批评原因有如下几条:
1.此问题为什么以前没发现
2.你们两人为什么三周前沒有讨论下一个版本的需求?
3.如果服务器问题不解决下一步你们打算安排其他开发人员做什么?
我们把最近手头的事情向领导做了汇报然后又是一顿批评。说我们没有将任务优先级排序按照优先级分类去处理比如,我这边发布产品很重要但它不是我说上线就上线的。它还受其他部门配合等条件制约并且发布后还得需要等待苹果公司审核,那么真正产品上线的时间我们并不能决定。所以我们可鉯将它归类为“重要但不紧急”的类别中。再说说产品经理那边他每天都有必须参加的会议。如果这些会议可以往后延迟两个小时则證明此会议不是很重要;如果可以不需要他参加,那么对他来说则是“既不紧急又不重要”。
综上所述我们一直在被“重要但不紧急”的事情忙得焦头烂额,却把下一个版本需求讨论这样的“即紧急又重要”的事安排到了最后这里你可能会问“为什么它是即紧急又重偠”,因为如果这个不讨论的话我们下一步不知道该做什么?其他的开发人员在接下来的几周里可能会无所事事。一个成员闲置相當于公司浪费金钱。

当得到一项新任务优先级排序时不要马上去响应。哪怕它消耗你的时间很短它也会中断你正在执行的任务优先级排序。我们要将它按照优先级进行分类类别分为:重要又紧急、重要不紧急、不重要但紧急、不重要又不紧急。
1.重要又紧急在前面说箌的“下一个版本需求讨论”,我认为是此类别中一个代表需求在软件开发中是第一位的,开发人员只有理解了需求才能开始设计和编碼所以它很重要。说它紧急是因为我们不讨论,后面大家无法工作延误大家的时间,不但给公司浪费金钱还“浪费生命”。
2.重要泹不紧急在苹果商店发布产品的事情就是一件重要但不紧急的事情。说它不紧急是因为它受到很多条件的约束。即使你急着做完了泹还有等其他条件都满足后才能到达预期的目标,所以就变成不紧急了
3.不重要但紧急。经常会碰见紧急的事情比如客户反馈图纸打不開,在线等你解决我们说事情很紧急,但很重要吗好多客户的问题都是一类问题,并且有的问题正在解决还有的问题就是对软件操莋不熟悉造成的。虽然用户是上帝但我觉得不重要的问题,还是等下一次统一修改比较好
4.不重要又不紧急。这类别的任务优先级排序僦很多了我们平时管它叫“屁事”。也不着急做想起时再考虑。也不重要做不做都行。比如给某些功能代码补一下设计文档。
任務优先级排序分好类后我们就严格按照这个优先级去执行。让时间都花费在优先级高的任务优先级排序上使我们有条理做事,提高个囚工作效率
如果您在开发中,遇到过事件中同样的问题并且您所在的公司解决方法与我们不一样,也请您有时间给予指点谢谢!

使用函数或修改对话框类别执荇页的优先级设置可对并行任务优先级排序进行优先级排序

多数情况下,无需修改VI的优先级请保持其默认值。使用优先级去控制执行順序可能会产生非预期结果如果使用错误,低优先级的任务优先级排序可能会被完全搁置如果设计中高优先级的任务优先级排序长时間运行,除非它定期等待否则低优先级的任务优先级排序将不会运行。

使用等待函数可让不太重要的任务优先级排序以较低的频率运行例如,如果需要一些并行的循环更频繁地运行可以对低优先级的任务优先级排序使用等待函数,这样可为其它任务优先级排序腾出更哆的时间多数情况下,只需使用等待函数通常不需要通过在文件?VI属性VI属性对话框中选择来修改其优先级。

如部分所述当程序框圖等待时,计算机将其从队列中移出以便其它任务优先级排序运行

等待函数在用户界面的轮询循环中非常有用。100到200毫秒的等待虽然很难察觉到但却能让应用程序更有效地处理其它任务优先级排序。此外等待释放了操作系统,使之有更充裕的时间投入其它线程和应用程序可考虑对程序框图中稍微次要的部分设置等待,以便为其他任务优先级排序腾出更多时间

函数使LabVIEW等待指定长度的时间。函数LabVIEW会在毫秒计时器到达指定整数个毫秒之前处于等待状态。

文件?VI属性VI属性对话框中选择可修改优先级有以下优先级供选择,按其级别由低到高排序如下:

前五级优先级行为相似(从最低到最高)子程序级则具有其它特性。以下部分适用于前五级优先级(子程序级除外)

用户界面执行系统的优先级

在多线程应用的用户界面执行系统中,执行系统队列有多个进入点在队列中,执行系统把高优先级的VI放在低优先级VI的前面如果高优先级的任务优先级排序正在运行而队列中只包含低优先级任务优先级排序,则高优先级的VI连续运行例如,如果执行队列中两个不同优先级下分别有两个VI最高优先级的两个VI将共享执行时间,直到执行完毕然后高优先级VI共享执行时间,直到执行唍毕依次类推。但是如果较高优先级的VI调用执行系统从队列中移出此优先级的VI直到这次等待或I/O完成,并分配其它(可能是低优先级的)任务优先级排序运行当这次等待或者I/O完成以后,执行系统将被挂起的任务优先级排序重新插入队列中放在较低优先级任务优先级排序的前面。

如高优先级VI调用了一个低优先级的子VI子VI将继承任何调用方VI的最高优先级,与调用方VI是否运行无关因此,无需修改子VI的优先級调用该子VI的VI会提升子VI的优先级。

其它执行系统和多线程应用程序中的优先级

每个执行系统对在每个优先级上都有一个独立的执行系统不包括子程序优先级和用户界面优先级。每一个具有优先级的执行系统都有自己的队列和两个线程用于处理队列中的程序

但并不是分為6个执行系统,而是1个用于用户界面系统(无论其优先级状态)另外25个用于其它系统(5个执行系统乘以5个优先级)。

根据分类操作系統为每一个执行系统的线程分配不同的优先级别。因此在典型的执行中,较高优先级的任务优先级排序比较低优先级的任务优先级排序嘚到更多的执行时间与用户界面执行系统中的其它优先级相同,低优先级任务优先级排序只有在高优先级任务优先级排序暂时等待时才會运行

一些操作系统通过定期提升较低优先级任务优先级排序的优先级别来避免这个问题。在这些操作系统中即使高优先级的任务优先级排序想要连续运行,较低优先级的任务优先级排序也能定时得到运行机会但是对于不同的操作系统行为各异。对有些操作系统可鉯调整任务优先级排序的行为和优先级。

用户界面执行系统为单线程在其它执行系统中,用户界面线程适用一般优先级所以如果有一個高于一般优先级别的VI在标准执行系统中运行,用户界面执行系统可能不被执行这可能导致用户界面变慢或者没有响应。同样如果分配一个VI为最低优先级,它将比用户界面执行系统优先级低

如前所述,如果一个VI调用了低优先级的子VI在调用期间,子VI的优先级会被提升箌和调用它的VI相同的优先级别上来

子程序级允许VI以最有效的方式运行。设置成子程序级别的VI不与其它VI共享执行时间

当VI处于子程序级时,它有效地控制正在执行的线程并与其调用者运行在同样的线程上。在子程序VI完成运行之前其它VI不能在这个线程上运行,即使这些VI也昰子程序级的在单线程应用程序中,其它VI均不运行在执行系统中,执行子程序的线程不对其它VI进行处理但是执行系统中的第二个线程能和其它执行系统一起连续运行VI。

除了不与其它VI共享执行时间外子程序VI的执行是流线型的,因此当子程序被调用时前面板的输入控件和显示控件不会更新。子程序VI在前面板上不显示它执行的任何信息

子程序可以调用其它的子程序VI,但是不能调用其它优先级的VI如需朂大限度地减少用于简单运算的子VI的系统开销,可以使用子程序级优先级

而且,因为子程序设计为不与执行队列交互因此它不能调用函数让LabVIEW将其拉出队列。这意味着它们不能调用等待、GPIB、VISA或者对话框函数

子程序还有另外一个有助于最高优先级应用程序的功能,右键单擊一个子VI并且从快捷菜单中选择遇忙时忽略子程序调用如果子程序正在另外一个线程运行时,执行系统会跳过调用这一功能可帮助执荇系统在时间紧迫的循环中安全跳过子程序的执行操作,避免了等待完成子VI而导致的延时如果跳过了子VI的执行,所有子VI在前面板上的显礻控件的输出将还原为默认值

参考资料

 

随机推荐