准备 COBOL 程序以实现多线程

可以在进程 中的批处理, TSO , IMS或 z/OS® UNIX下的多个线程中运行 COBOL 程序。

关于此任务

没有用于多线程执行的显式 COBOL 语言; 而是使用 THREAD 编译器选项进行编译。

COBOL 不直接支持管理程序线程。 但是,您可以在多线程应用程序服务器,使用 C/C++ 驱动程序创建线程的应用程序,使用 Java™ 进行互操作并使用 Java 线程的程序以及使用 PL/I 任务的应用程序中运行使用 THREAD 编译器选项编译的 COBOL 程序。 换言之,其他程序可以通过以下方式调用 COBOL 程序: COBOL 程序在进程中的多个线程中运行,或者作为线程中的多个程序调用实例运行。 线程应用程序必须在单个 Language Environment ® 相关可调度单元组中运行。

选择 LOCAL-STORAGEWORKING-STORAGE: 由于必须将多线程程序编码为递归程序,因此数据的持久性是任何递归程序的持久性:

  • LOCAL-STORAGE SECTION 中的数据项将自动分配给程序调用的每个实例。 当程序同时在多个线程中运行时,每个调用都有一个单独的 LOCAL-STORAGE 数据副本。
  • WORKING-STORAGE SECTION 中的数据项将为每个程序分配一次,因此在其上次使用状态下可用于程序的所有调用。

对于要隔离到单个程序调用实例的数据,请在 LOCAL-STORAGE SECTION中定义数据。 通常,此选项适用于线程程序中的工作数据。 如果在 WORKING-STORAGE定义 数据,并且程序更改了数据的内容,那么必须执行下列其中一项操作:

  • 构造应用程序,以便您不会同时从多个线程访问 WORKING-STORAGE 中的数据。
  • 如果同时从单独的线程访问数据,请编写相应的序列化代码。

相关概念"
多线程"

相关参考'
文本'
PROGRAM-ID 段落Enterprise COBOL for z/OSLanguage Reference) "