COBOL中没有提供wait的方法,但是也不要使用简单的loop来实现等待,这样会浪费处理器资源,造成不必要的开支(主机的CPU是按MIPS计费的)。
COBOL中实现线程等待的方法其实很简单,有一个IBM提供的可调用模块,叫做ILBOWAT0,用等待的秒数调用它即可,等待过程中,理论CPU消耗为零。
例子:
77 WS-DELAY-TIME PIC S9(8) USAGE COMP VALUE 10.
77 WS-CURR-TIME PIC 9(8).
77 WS-SQLCODE PIC -9(6).
………………
ACCEPT WS-CURR-TIME FROM TIME.
DISPLAY WS-CURR-TIME.
CALL 'ILBOWAT0' USING WS-DELAY-TIME.
ACCEPT WS-CURR-TIME FROM TIME.
DISPLAY WS-CURR-TIME.
在我的机器上的运行结果:
22340799
22341800
可以看出roughly等待了10秒。