<H1 ALIGN="CENTER">Multi-Processing Module mpmt_pthread</H1>
<P>
-This Multi-Processing Module controls process and thread creation
-using the pthread interface.
+This Multi-Processing Module implements a hybrid multi-threaded
+multi-process web server.
</P>
<P><A
<H2>Summary</H2>
<p>This Multi-Processing Module (MPM) is the default for most unix-like
-operating systems. It uses pthread system calls to create a hybrid
+operating systems. It implements a hybrid
multi-process multi-threaded server. Each process has a fixed number
of threads. The server adjusts to handle load by increasing or
decreasing the number of processes.</p>
+<p>A single control process is responsible for launching child
+processes. Each child process creates a fixed number of threads as
+specified in the <code>ThreadsPerChild</code> directive.
+The individual threads then listen for connections and
+serve them when they arrive.</p>
+
+<p>Apache always tries to maintain a pool of <em>spare</em> or idle
+server threads, which stand ready to serve incoming requests. In this
+way, clients do not need to wait for a new threads or processes to be
+created before their requests can be served. Apache assesses the
+total number of idle threads in all processes, and forks or kills
+processes to keep this number within the boundaries specified by
+<code>MinSpareThreads</code> and <code>MaxSpareThreads</code>.
+Since this process is very self-regulating, it is rarely necessary to
+modify these directives from their default values. The maximum
+number of clients that may be served simultaneously is determined
+by multiplying the maximum number of server processes that
+will be created (<code>MaxClients</code>) by the number of threads
+created in each process (<code>ThreadsPerChild</code>).</p>
+
+<p>While the parent process is usually started as root under Unix in
+order to bind to port 80, the child processes and threads are launched
+by Apache as a less-privileged user. The <code>User</code> and
+<code>Group</code> directives are used to set the privileges of the
+Apache child processes. The child processes must be able to read all
+the content that will be served, but should have as few privileges
+beyond that as possible. In addition, unless <a
+href="../suexec.html">suexec</a> is used, these directives also set
+the privileges which will be inherited by CGI scripts.</p>
+
+<p><code>MaxRequestsPerChild</code> controls how frequently the server
+recycles processes by killing old ones and launching new ones.</p>
+
+<p>See also: <a href="../bind.html">Setting which addresses and ports
+Apache uses</a>.</p>
+
<H2>Directives</H2>
<UL>