ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzahw_5.4.0.1/rzahwileco.htm

57 lines
3.9 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Threads considerations for ILE COBOL and RPG language" />
<meta name="abstract" content="You can create an Integrated Language Environment (ILE) COBOL or ILE RPG module that will run safely in a multithreaded environment by serializing access to the module." />
<meta name="description" content="You can create an Integrated Language Environment (ILE) COBOL or ILE RPG module that will run safely in a multithreaded environment by serializing access to the module." />
<meta name="DC.Relation" scheme="URI" content="rzahwlanco.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahwnonco.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzahwile-ileco" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Threads considerations for ILE COBOL and RPG language</title>
</head>
<body id="rzahwile-ileco"><a name="rzahwile-ileco"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Threads considerations for ILE COBOL and RPG language</h1>
<div><p>You can create an Integrated Language Environment<sup>®</sup> (ILE)
COBOL or ILE RPG module that will run safely in a multithreaded environment
by serializing access to the module.</p>
<div class="section"><p>You do this by specifying THREAD (SERIALIZE) on the PROCESS statement
for COBOL or THREAD (*SERIALIZE) on the Control specification for RPG. When
you serialize a module, only one thread can run any procedure in that module
at one time. For example, consider a module that has procedures P1 and P2.
If one thread is running procedure P1, no other thread can run either procedure
P1 or P2 until the first thread has finished running P1. Even when a module
is serialized, the COBOL or RPG programmer must ensure that global storage
and heap storage are accessed in a threadsafe way. Even if an RPG or COBOL
procedure apparently only uses automatic storage, RPG and COBOL use static
storage control blocks in every procedure. Therefore, you must always specify
THREAD (*SERIALIZE) when using ILE RPG or COBOL in a multithreaded environment.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzahwlanco.htm" title="Learn how different languages support threads on i5/OS. This information can help you evaluate how threads can be implemented in your own application.">Language access and threads</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzahwnonco.htm" title="Your multithreaded application at times requires access to functions or system services that are not thread safe. There are few completely safe alternatives for calling these functions.">Function calls that are not thread safe</a></div>
</div>
</div>
</body>
</html>