80 lines
3.3 KiB
HTML
80 lines
3.3 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
||
|
<title>Running threaded programs</title>
|
||
|
<!-- Begin Header Records ========================================== -->
|
||
|
<!-- 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. -->
|
||
|
<!-- NETMG2 SCRIPT A converted by B2H R4.1 (346) (CMS) by HOLTJM at -->
|
||
|
<!-- RCHVMW2 on 29 Jan 1999 at 10:01:37 -->
|
||
|
<!-- Change History: -->
|
||
|
<!-- YYMMDD USERID Change description -->
|
||
|
<!--File Edited November 2001 -->
|
||
|
<!--End Header Records -->
|
||
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<!-- Java sync-link -->
|
||
|
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
|
||
|
</script>
|
||
|
|
||
|
<h2>Running threaded programs</h2>
|
||
|
|
||
|
<p>When you run a threaded program, the job that runs a threaded program must
|
||
|
be specially initialized by the system to support threads. Currently, several
|
||
|
mechanisms allow you to start a job that is capable of creating multiple kernel
|
||
|
threads:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>Use the i5/OS<SUP>(TM)</SUP> QShell Interpreter. In the QShell Interpreter, a program
|
||
|
gets descriptors 0, 1, and 2 as the standard files; the parent and child I/O is
|
||
|
directed to the console. The QShell interpreter allows you to run multithreaded
|
||
|
programs as if they were interactive. See <a href="../rzahz/intro.htm">Qshell</a>
|
||
|
for a description of the QIBM_MULTI_THREADED shell variable,
|
||
|
which, when set to 'Y', allows you to run multithreaded programs the same way
|
||
|
you run any other program. The QShell Interpreter is option 30 of Base
|
||
|
i5/OS.<br>
|
||
|
<br>
|
||
|
</li>
|
||
|
|
||
|
<li>Use the <strong>spawn</strong>() API. The <strong>spawn</strong>() API has
|
||
|
a flag in the spawn inheritance structure that allows you to turn on the
|
||
|
multithread capability for the child job. The <strong>QUSRTOOL</strong> library
|
||
|
also provides source code and an example CL command to allow you to create and
|
||
|
use a <strong>SPAWN</strong> CL command in a way that is similar to the
|
||
|
<strong>SBMJOB</strong> CL command. See the <a href="concep32.htm">SPAWN CL
|
||
|
command, QUSRTOOL example</a> for more information.<br>
|
||
|
<br>
|
||
|
</li>
|
||
|
|
||
|
<li>Use the <strong>SBMJOB</strong> CL command. Setting the 'Allow multiple
|
||
|
threads' parameter (keyword <strong>ALWMLTTHD</strong>) on the CL command
|
||
|
allows you to turn on the multithread capability of the submitted job.<br>
|
||
|
<br>
|
||
|
</li>
|
||
|
|
||
|
<li>Use the <strong>CRTJOBD</strong> CL command to create a special job
|
||
|
description; then create your job using a mechanism that will use the job
|
||
|
description. Setting the 'Allow multiple threads' parameter (keyword <strong>
|
||
|
ALWMLTTHD</strong>) on the job description allows you to turn on the
|
||
|
multithread capability of the jobs that are created using that job
|
||
|
description.</li>
|
||
|
</ul>
|
||
|
|
||
|
<hr>
|
||
|
<center>
|
||
|
<table cellpadding="2" cellspacing="2">
|
||
|
<tr align="center">
|
||
|
<td valign="middle" align="center"><a href="rzah4mst.htm">Pthread APIs</a> | <a
|
||
|
href="aplist.htm">APIs by category</a></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</center>
|
||
|
</body>
|
||
|
</html>
|
||
|
|