鲜为人知的SAS9 多线程技术

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

SAS自8版开始就支持startsas命令,但其帮助介绍它的相关知识很少,并且运行该命令,无论是在8版还是在9版都会提示

STARTSAS 是试用功能。该功能的使用可能会导致意外的结果。

下面让我来集中介绍这家伙的具体用法吧

首先它的作用就是开启一个SAS线程,避免了开进程所导致的开销

1.最简单的用法就是:

startsas dms;

或者

startsas dms noexplorer;

需注意的是,不要使用

startsas;

行模式是不被支持的,只能从批提交,在应用该命令时

2.直接提交命令给当前线程

startsas dms noexplorer ls=min

initstmt="SAS命令串";

startsas dms noexplorer skip=min

initstmt="SAS命令串";

注意的是,SAS命令串的长度是有限制的,在我机器上是4000多个字节

SAS有这样的命令可以中止当前SAS线程,如下:

endsas;

所以,建议最好在命令串后加上这个命令endsas;

3.如果你不想直接提交命令而想提交文件,startsas也是支持的,如下

sasstart sysin="SAS文件" SAS选项;

SAS选项可以是启动SAS时可用的任意选项,如log print nolog等

好了,告诉了这么多,是不是够了呢?

呵呵,明显不够了,还只告诉我们怎么启动SAS线程,还没有告诉怎么结束SAS线程呢

OK,GO ON!

启动SAS线程后,SAS进程会把该线程ID写入sysstartid宏中

SAS提供了下面命令支持启动SAS线程的善后处理问题

1、BYE|ENDSAS 命令

--------------------------------------------------------------------------------

结束 SAS 过程;如果没有其他 SAS 过程在运行,则结束 SAS 会话。类别: 窗口管理

--------------------------------------------------------------------------------

语法

BYE

ENDSAS <_ALL_ | ALL><process-id-list>

BYE 参数

(无参数)

如果只有一个过程,将终止会话。否则,它将终止当前过程。

ENDSAS 参数

(无参数)

关闭一个过程中的所有窗口。

ALL

关闭所有过程中的所有窗口。

_ALL_

关闭所有过程中的所有窗口。

process-id-list

关闭与以前启动的 SAS 过程的 ID 一致的过程。

2、waitsas命令

郁闷的是,SAS帮助中没有提供任何相关信息,不过其具体用法是这样的

waitsas 线程ID;

它的作用就是等待该线程执行完毕

3、systime宏

指示出SAS线程启动的时间

4、SYSSTARTNAME 宏

指示最近产生的SAS线程的名字

5、SYSSTARTID 宏

指示最近产生的SAS线程的线程ID

6。sysuserid宏

指示当前SAS线程所运行的用户名

不过很郁闷很郁闷的是我没有找到一个命令知道这个SAS是运行完了还是没运行完,所以我也无法告知大家了

只能能过其他手段解决了,比如进程和线程中共享一个物理表来维护状态

好了,到此结束了,最后附注一下:此文所带来的苦果,还请君自尝

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航