<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Wait_%28Unix%29</id>
	<title>Wait (Unix) - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Wait_%28Unix%29"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Wait_(Unix)&amp;action=history"/>
	<updated>2026-07-03T19:13:29Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Wait_(Unix)&amp;diff=2024697&amp;oldid=prev</id>
		<title>imported&gt;Ohtashinichiro 来自 2026年5月21日 (四) 12:34</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Wait_(Unix)&amp;diff=2024697&amp;oldid=prev"/>
		<updated>2026-05-21T12:34:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;wait&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;（意指“等待”）为[[类UNIX]][[操作系统]][[系统调用]]。&lt;br /&gt;
&lt;br /&gt;
== 功能 ==&lt;br /&gt;
&lt;br /&gt;
多进程系统内的[[进程]]（或[[作業 (電腦)|任务]]）有时需要等待其他进程以完成自己的执行过程，而在包含父-子进程机制的类UNIX系统中，[[父进程]]能创建可独立运行的[[子进程]]，并在需要时调用&amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;wait&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;（函数声明为&amp;lt;tt&amp;gt;pid_t wait(int *stat_loc)&amp;lt;/tt&amp;gt;）以使自己在子进程执行过程中保持休眠状态。当任一子进程结束后，该子进程会向操作系统返回一个[[退出状态]]，而后系统即向休眠中的父进程发送一个[[SIGCHLD]][[信号 (计算机科学)|信号]]以提醒之，至此父进程“复苏”并从内核获取子进程的退出状态，而后内核释放原有子进程所占用的资源，父进程也继续执行。&lt;br /&gt;
&lt;br /&gt;
== 衍生 ==&lt;br /&gt;
&lt;br /&gt;
对于带有线程机制的类UNIX系统来说，对于线程调度也有对应&amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;wait&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;的实现：&amp;lt;tt&amp;gt;pthread_join&amp;lt;/tt&amp;gt;会让当前进程强制休眠，等待指定线程执行完毕后再继续执行。&lt;br /&gt;
&lt;br /&gt;
[[类UNIX]]系统还提供多种&amp;lt;tt&amp;gt;wait&amp;lt;/tt&amp;gt;的衍生调用（如&amp;lt;tt&amp;gt;waitpid&amp;lt;/tt&amp;gt;和&amp;lt;tt&amp;gt;waitid&amp;lt;/tt&amp;gt;）以扩展适用范围。借助于这些变种，父进程可以休眠至任一子进程结束，也可以等待满足指定条件（如匹配给定的[[进程标识符]]）的子进程结束后再继续执行。另外，若利用额外选项做参数，&amp;lt;tt&amp;gt;waitpid&amp;lt;/tt&amp;gt;和&amp;lt;tt&amp;gt;waitid&amp;lt;/tt&amp;gt;在指定进程继续运行或暂停执行时也会返回。&lt;br /&gt;
&lt;br /&gt;
== 僵尸进程 ==&lt;br /&gt;
{{Main|僵尸进程}}&lt;br /&gt;
即使没有提前调用&amp;lt;tt&amp;gt;wait&amp;lt;/tt&amp;gt;，在任一进程终止后，系统内核都会向其父进程发送SIGCHLD，这时父进程可以选择使用SIG_IGN作为处理函数，令内核知晓自己不需获得状态，并直接交由init进程处理；亦可调用&amp;lt;tt&amp;gt;wait&amp;lt;/tt&amp;gt;，则立即返回子进程退出状态。若两者皆不做，则子进程在进程表中占用的资源就无法得到释放，进而成为[[僵尸进程]]，持续浪费资源&amp;lt;ref&amp;gt;{{cite book| title = Gnu/Linux Application Programming |url = http://books.google.com/books?id=KjEq9Mua5TQC&amp;amp;pg=PA178 | author = M. Tim Jones | publisher = Cengage Learning | date = 2005 | page = 178 }}&amp;lt;/ref&amp;gt;。为解决这一问题，系统常以特殊进程reaper（“收割者”）定位僵尸进程，并获取其状态以使系统可以解除资源分配，从而“收割”之&amp;lt;ref&amp;gt;{{cite book| title = Linux System Security: An Administrator&amp;#039;s Guide to Open Source Security Tools | author = Scott Mann, Ellen L. Mitchell | page = 167 | url = http://books.google.com/books?id=yiwxWC71dKMC&amp;amp;pg=PA167 | date = 2000 | publisher = Prentice Hall Professional}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
&lt;br /&gt;
* {{Tsl|en|Exit (operating system)|exit (操作系统)}}&lt;br /&gt;
* [[fork (操作系统)]]&lt;br /&gt;
* {{Tsl|en|Sleep (operating system)|sleep (操作系统)}}&lt;br /&gt;
* {{Tsl|en|Spawn (computing)|Spawn (计算机)}}&lt;br /&gt;
* [[wait (Shell)]]&lt;br /&gt;
* {{Tsl|en|Wait state|等待状态}}&lt;br /&gt;
&lt;br /&gt;
== 参考来源 ==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
*{{man|sh|wait|Unix}}&lt;br /&gt;
*{{man|sh|waitid|Unix}}&lt;br /&gt;
*{{man|sh|waitpid|Unix}}&lt;br /&gt;
*{{cite web &lt;br /&gt;
| url = http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_join.html &lt;br /&gt;
| title = pthread_join &lt;br /&gt;
| work = The Open Group Base Specifications Issue 7 &lt;br /&gt;
| accessdate = 2013-01-10 &lt;br /&gt;
| archive-date = 2022-01-26 &lt;br /&gt;
| archive-url = https://web.archive.org/web/20220126174943/https://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_join.html &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:进程]]&lt;br /&gt;
[[Category:C POSIX library]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ohtashinichiro</name></author>
	</entry>
</feed>