程序中的线程 3 线程的优先级.doc

程序中的线程 3 线程的优先级.doc

ID:57673844

大小:12.50 KB

页数:2页

时间:2020-08-31

 程序中的线程 3  线程的优先级.doc_第1页
 程序中的线程 3  线程的优先级.doc_第2页
资源描述:

《 程序中的线程 3 线程的优先级.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、LabVIEW程序中的线程3-线程的优先级  三、线程的优先级  在VI的属性设置面板VIProperties->Execution中还有一个下拉选项控件是用来设置线程优先级的(Priority)。这一选项可以改变这个VI运行线程的优先级。  优先级设置中共有六项,其中前五项是分别从低到高的五个优先级。优先级越高,越容易抢占到CPU资源。比如你把某个负责运算的VI的优先级设为最高级(timecriticalpriority),程序在运行时,CPU会更频繁地给这个VI所在线程分配时间片段,其代价是分配给其它线程的运算时间减少了。如果这个程序另有一个线程负责界面刷新,那么用户会发现在把执行线

2、程的优先级提高后,界面刷新会变得迟钝,甚至根本就没有响应。  优先级设置的最后一项是subroutine,它与前五项别有很大的不同。严格的说subroutine不能作为一个优先级,设置subroutine会改变VI的一些属性:  设置为subroutine的VI的前面板的信息会被移除。所以这样的VI不能用作界面,也不能单独执行。  设置为subroutine的VI的调试信息也会被移除。这样的VI无法被调试。  当程序执行到被设置为subroutine的VI的时候,程序会暂时变为单线程执行方式。即程序在subroutineVI执行完之前,不会被别的线程打断。  以上的三点保证了subrou

3、tineVI在执行时可以得到最多的CPU资源,某些作为关键运算的VI,又不是特别耗时的,就可以被设置为subroutine以提高运行速度。比如有这样一个VI,他的输入是一个数值数组,输出是这组数据的平均值。这个运算在程序中需要被尽快完成,以免拖延数据的显示,这个VI就是一个蛮适合的subroutineVI。  在设置VI优先级的时候有几点需要注意的。  提高一个VI的优先级一般不能显著缩短程序的运行时间。提高了优先级,它所需要的CPU时间还是那么多,但是CPU被它占用的频率会有所提高。  高优先级的VI不一定在低优先级VI之前执行。现在常用的多线程操作系统采用的都是抢占式方式,线程优先级

4、别高,抢到CPU的可能性比低级别的线程大,但也不是绝对的。  使用subroutine时要格外注意,因为他会让你的程序变成单线程方式执行,这在很多情况下反而会降低你的程序的效率。比如一个VI并非只是用来运算,它还需要等待其它设备传来的数据,这样的VI就绝对不能被设置为subroutine。现在多核CPU已经很流行了,在这样的计算机上,单线程运行的程序通常比多线程效率低,这也是需要考虑的。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。