Timer 可以在cobol中创建计时器吗?

Timer 可以在cobol中创建计时器吗?,timer,cobol,Timer,Cobol,有人知道如何用cobol创建计时器吗?有可能吗?也许谷歌页面的这个问题可以帮助你: 在PC上搜索DosSleep,在大型机上搜索ILBOWAT0 希望这能有所帮助。也许谷歌页面的这个问题可以帮助你: 在PC上搜索DosSleep,在大型机上搜索ILBOWAT0 希望这能有所帮助。ILBOWAT0已经过时20年了。语言环境在IBM大型机上提供了一个解决方案,详情如下。ILBOWAT0已经过时20年了。Language Environment在IBM大型机上提供了一个解决方案,详情如下。要使用Cob

有人知道如何用cobol创建计时器吗?有可能吗?

也许谷歌页面的这个问题可以帮助你:

在PC上搜索DosSleep,在大型机上搜索ILBOWAT0


希望这能有所帮助。

也许谷歌页面的这个问题可以帮助你:

在PC上搜索DosSleep,在大型机上搜索ILBOWAT0


希望这能有所帮助。

ILBOWAT0已经过时20年了。语言环境在IBM大型机上提供了一个解决方案,详情如下。

ILBOWAT0已经过时20年了。Language Environment在IBM大型机上提供了一个解决方案,详情如下。

要使用Cobol对进程计时,可以计算两个时间点之间的差异。下面是一些用于测量时间点的示例代码,以帮助您开始

   01  TEMP-TIME-1.
       05  T1-HOURS                 PIC 99.
       05  T1-MINUTES               PIC 99.
       05  T1-SECONDS               PIC 99.
       05  T1-HUNDREDTHS-OF-SECS    PIC 99.

  Use similar data definitions for TEMP-TIME-2
                                   START-TIME
                                   END-TIME

   ACCEPT TEMP-TIME-1 FROM TIME

  If using hundredth of seconds, use following loop
  to start timing at start of a hundredth of a second

   PERFORM WITH TEST AFTER UNTIL TEMP-TIME-2 <> TEMP-TIME-1
       ACCEPT TEMP-TIME-2 FROM TIME
   END-PERFORM
   MOVE TEMP-TIME-2 TO START-TIME

使用类似的代码设置结束时间

以Cobol为进程计时,您可以计算两个时间点之间的差异。下面是一些用于测量时间点的示例代码,以帮助您开始

   01  TEMP-TIME-1.
       05  T1-HOURS                 PIC 99.
       05  T1-MINUTES               PIC 99.
       05  T1-SECONDS               PIC 99.
       05  T1-HUNDREDTHS-OF-SECS    PIC 99.

  Use similar data definitions for TEMP-TIME-2
                                   START-TIME
                                   END-TIME

   ACCEPT TEMP-TIME-1 FROM TIME

  If using hundredth of seconds, use following loop
  to start timing at start of a hundredth of a second

   PERFORM WITH TEST AFTER UNTIL TEMP-TIME-2 <> TEMP-TIME-1
       ACCEPT TEMP-TIME-2 FROM TIME
   END-PERFORM
   MOVE TEMP-TIME-2 TO START-TIME

使用类似的代码设置OpenCOBOL的结束时间

,C$SLEEP的库调用函数以秒为单位计时,CBL_OC_NANOSLEEP的库调用函数以十亿分之一秒为单位计时,这是大多数机器无法处理的分辨率。有关特定硬件和操作系统的精度,请参阅librt clock_res


克隆出OpenCOBOL源代码的副本,并在libcob/common.c文件中查找cob_acuw_sleep和CBL_OC_NANOSLEEP c函数,以了解OpenCOBOL是如何实现的;它有条件代码来处理Windows和POSIXey系统的计时器。

对于OpenCOBOL,有以秒为单位计时的C$SLEEP和以十亿分之一秒为单位计时的CBL_OC_NANOSLEEP的库调用函数,这是大多数机器无法处理的分辨率。请参阅librt clock_res,以获取计算机上的精度特定的硬件和操作系统


克隆出OpenCOBOL源代码的副本,并在libcob/common.c文件中查找cob_acuw_sleep和CBL_OC_NANOSLEEP c函数,以了解OpenCOBOL是如何实现的;它有条件代码来处理Windows和POSIXey系统的计时器。

我认为COBOL中的ACCEPT TIME从来没有像您所示的那样用于构建计时器函数。你在这里所做的是以惊人的速度消耗CPU——在一个CPU成本真实的大型机系统上,你甚至可能用这段代码让你的雇主破产!最后一点注意:在循环中测试notequal可能会导致无限循环。如果您打算至少测试TEMP-TIME-2>TEMP-TIME-1NealB,如果您想提供帮助,请提供替代方案。如果您反对执行循环,可以将其排除,但这可能会降低上述方法的准确性。除非时间停止,否则temp-time-1 temp-temp-2将在1/100秒内为真,循环将停止。我确实想学习:请解释无限循环是如何发生的。如您所示,使用标准COBOL动词(如接受时间)无法有效地实现计时器。这个紧密的循环可能会对计时器服务进行数以百万计的调用,从而消耗CPU——这只是浪费时间。正确的方法是发出某种服务例程的调用,以在所需的时间内暂停进程。在基于z/os的大型机上,您可以使用CEE3DLY或CEEDLYM服务来挂起您的程序,让CPU自由地做其他事情。这些都是非标准的例程,所以每个操作系统都需要不同类型的调用。你的代码怎么会导致无限循环呢?在负载沉重的系统中,您的程序有时会被操作系统暂停片刻,以便让其他具有更高优先级的进程运行。如果你运气不好,你的程序可能会被暂停超过百分之一秒,而那一刻可能就是你测试的时刻!你可能会认为发生这种情况的可能性非常小,但我不会打赌它不会发生。我认为COBOL中的ACCEPT TIME从来没有像你所说明的那样用于构建计时器函数。你在这里所做的是以惊人的速度消耗CPU——在一个CPU成本真实的大型机系统上,你甚至可能用这段代码让你的雇主破产!最后一点注意:在循环中测试notequal可能会导致无限循环。如果您打算至少测试TEMP-TIME-2>TEMP-TIME-1NealB,如果您想提供帮助,请提供替代方案。如果您反对执行循环,可以将其排除,但这可能会降低上述方法的准确性。除非时间停止,否则temp-time-1 temp-temp-2将在1/100秒内为真,循环将停止。我确实想学习:请解释无限循环是如何发生的。如您所示,使用标准COBOL动词(如接受时间)无法有效地实现计时器。这个紧密的循环可能会通过对计时器服务(JU)进行数以百万计的调用来消耗CPU
不要浪费时间。正确的方法是发出某种服务例程的调用,以在所需的时间内暂停进程。在基于z/os的大型机上,您可以使用CEE3DLY或CEEDLYM服务来挂起您的程序,让CPU自由地做其他事情。这些都是非标准的例程,所以每个操作系统都需要不同类型的调用。你的代码怎么会导致无限循环呢?在负载沉重的系统中,您的程序有时会被操作系统暂停片刻,以便让其他具有更高优先级的进程运行。如果你运气不好,你的程序可能会被暂停超过百分之一秒,而那一刻可能就是你测试的时刻!你可能会认为这种情况发生的可能性非常小,但我不敢打赌它不会发生。