Difference between revisions of "MC-Basic:SEMAPHORETAKE/zh-hans"

From SoftMC-Wiki
Jump to: navigation, search
 
Line 1: Line 1:
{{Languages}}
+
{{Languages|MC-Basic:SEMAPHORETAKE}}
 
== 缩写 ==
 
== 缩写 ==
 
semTake
 
semTake
Line 10: Line 10:
  
 
== 描述 ==
 
== 描述 ==
SEMTAKE需要一个可以被多任务同步使用的信号量。如果该信号量是自由状态,SEMTAKE会返回1,改信号量会被标记为“taken”。如果该信号量已经被获取,SEMTAKE会返回0,该信号量的状态不会改变。SEMTAKE可以被用在块联动以访问已经在系统中被共享的资源,或者关键的用户软件部分。
+
SEMTAKE获取可用于多任务同步的信号量。 如果信号量空闲,则SEMTAKE返回1,信号量标记为“已采用”。 如果信号量已被占用,SEMTAKE返回0,信号量的状态不变。 SEMTAKE可用于阻止同时访问系统中的共享资源或关键用户软件部分。<br>
 +
如果超时,系统将尝试获取指定的时间量的信号量。
 +
Semtake可以在指定的超时之前返回而不需要获取信号量,因此检查返回值是非常重要的。
  
 
== 类型 ==
 
== 类型 ==

Latest revision as of 06:42, 22 January 2018

语言: English  • 中文(简体)‎

缩写

semTake

格式

<lval> = SemTake(<semaphore name> { , <timeout>})

适用版本

从版本3.7.x起

描述

SEMTAKE获取可用于多任务同步的信号量。 如果信号量空闲,则SEMTAKE返回1,信号量标记为“已采用”。 如果信号量已被占用,SEMTAKE返回0,信号量的状态不变。 SEMTAKE可用于阻止同时访问系统中的共享资源或关键用户软件部分。
如果超时,系统将尝试获取指定的时间量的信号量。 Semtake可以在指定的超时之前返回而不需要获取信号量,因此检查返回值是非常重要的。

类型

Long

取值范围

return value:          0 = 不成功 (信号没有采取)

1 = 成功(信号已采取)

<timeout>:             0 to 5000

单位

milliseconds

默认值

0

使用范围

任务区, 终端

限制

例子

While semTake(SEM1,1000) = 0                ‘等待释放信号
’wait for resource   

End While

REM critical section code

……

……

semTake(SEM1)                                         ‘take the semaphore

semTake(SEM1 , 100 )

参见