task11.htm

来自「ST20 Embedded Toolset R2.0.5用于开发基于ST20芯片」· HTM 代码 · 共 68 行

HTM
68
字号
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="12/01/03 14:14:41">
<title>5.10 Suspending tasks</title>

<STYLE TYPE="text/css">
<!--
	span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>

</head>

<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">

<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>

<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
  <tr>
    <td><a href="os20toc.htm"><img src="images/navtoc.gif" width="84" height="23"
    border="0" alt="TOC"> </a></td>
    <td><a href="task10.htm"><img src="images/navprev.gif" width="80" height="23"
    border="0" alt="PREV"> </a></td>
    <td><a href="task12.htm"><img src="images/navnext.gif" width="83" height="23"
    border="0" alt="NEXT"> </a></td>
    <td><a href="os20ix.htm"><img src="images/navidx.gif" width="84" height="23"
    border="0" alt="INDEX"> </a></td>
  </tr>
</table>

<p><br clear="all">
</p>

<hr align="left">

<blockquote>
<h2>
  <a name="1204804"> </a><font color="#003366"  face="Verdana, Arial, Helvetica, sans-serif">5.10 	 Suspending tasks</font>
</h2><hr>


<p>
  <a name="1204805"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">Normally a task only deschedules when it is waiting for an event such as a semaphore signal. This requires that the task itself call a function indicating that it is willing to deschedule at that point (for example, by calling <font size=2 face=Courier><strong>semaphore_wait</strong></font>). However, sometimes it is useful to be able to control a task, causing it to forcibly deschedule, without it explicitly indicating that it is willing to be descheduled. This can be done by suspending the task.</font>
</p>


<p>
  <a name="1204806"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">When a task is suspended, it stops executing immediately. When the task starts executing again, another task must resume it. When it is resumed, the task will be unaware that it was suspended, other than the time delay.</font>
</p>


<p>
  <a name="1204807"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">Task suspension is in addition to any other reason that a task is descheduled. Thus a task which is waiting on a semaphore and has been suspended will not start executing again until both the task is resumed and the semaphore is signalled, although these can occur in either order.</font>
</p>


<p>
  <a name="1209108"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif"><b>Caution:</b></font>
<br>

<dl><dl>    <dl>
      <dt> <a name="1209112"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">Task suspension can easily cause deadlock; see <a href="libs135.htm#1242681"><font  color="#0000ff" face="Verdana, Arial, Helvetica, sans-serif"><i>task_suspend</i></font></a> in <a href="libs.htm#1214476"><font  color="#0000ff" face="Verdana, Arial, Helvetica, sans-serif"><i>Chapter

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?