create_barrierT_create_barrierCreateBarrierCreateBarriercreate_barrier创建屏障(算子)

名称

create_barrierT_create_barrierCreateBarrierCreateBarriercreate_barrier — 创建屏障同步对象。

签名

create_barrier( : : AttribName, AttribValue, TeamSize : BarrierHandle)

Herror T_create_barrier(const Htuple AttribName, const Htuple AttribValue, const Htuple TeamSize, Htuple* BarrierHandle)

void CreateBarrier(const HTuple& AttribName, const HTuple& AttribValue, const HTuple& TeamSize, HTuple* BarrierHandle)

void HBarrier::HBarrier(const HTuple& AttribName, const HTuple& AttribValue, Hlong TeamSize)

void HBarrier::HBarrier(const HString& AttribName, const HString& AttribValue, Hlong TeamSize)

void HBarrier::HBarrier(const char* AttribName, const char* AttribValue, Hlong TeamSize)

void HBarrier::HBarrier(const wchar_t* AttribName, const wchar_t* AttribValue, Hlong TeamSize)   ( Windows only)

void HBarrier::CreateBarrier(const HTuple& AttribName, const HTuple& AttribValue, Hlong TeamSize)

void HBarrier::CreateBarrier(const HString& AttribName, const HString& AttribValue, Hlong TeamSize)

void HBarrier::CreateBarrier(const char* AttribName, const char* AttribValue, Hlong TeamSize)

void HBarrier::CreateBarrier(const wchar_t* AttribName, const wchar_t* AttribValue, Hlong TeamSize)   ( Windows only)

static void HOperatorSet.CreateBarrier(HTuple attribName, HTuple attribValue, HTuple teamSize, out HTuple barrierHandle)

public HBarrier(HTuple attribName, HTuple attribValue, int teamSize)

public HBarrier(string attribName, string attribValue, int teamSize)

void HBarrier.CreateBarrier(HTuple attribName, HTuple attribValue, int teamSize)

void HBarrier.CreateBarrier(string attribName, string attribValue, int teamSize)

def create_barrier(attrib_name: MaybeSequence[Union[int, float, str]], attrib_value: MaybeSequence[Union[int, float, str]], team_size: int) -> HHandle

描述

屏障是一种同步对象,它会阻塞线程,直到先前定义数量的线程到达该屏障为止。create_barriercreate_barrierCreateBarrierCreateBarrierCreateBarriercreate_barrier 根据 AttribNameAttribNameAttribNameAttribNameattribNameattrib_nameAttribValueAttribValueAttribValueAttribValueattribValueattrib_value 中指定的属性,分配并初始化返回在 BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandlebarrier_handle 中的屏障对象。其中 AttribNameAttribNameAttribNameAttribNameattribNameattrib_name 指定属性类,AttribValueAttribValueAttribValueAttribValueattribValueattrib_value 指定屏障类型。下文描述了以下参数类支持的所有屏障类型:

''""""""""""

空字符串设置默认属性。

'type'"type""type""type""type""type"

指定线程在屏障处等待时发生的情况:

'sleep'"sleep""sleep""sleep""sleep""sleep"

仅暂停调用线程(默认)。

'spin'"spin""spin""spin""spin""spin"

一种用于短等待的快速屏障实现,该实现采用忙等待机制。

TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size 指定必须调用 wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrierwait_barrier 的线程数量,在此之后这些线程才能从等待状态成功返回。TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size 的值必须大于零。

执行信息

参数

AttribNameAttribNameAttribNameAttribNameattribNameattrib_name (输入控制)  attribute.name(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

屏障属性。

默认值: []

值列表: 'type'"type""type""type""type""type"

AttribValueAttribValueAttribValueAttribValueattribValueattrib_value (输入控制)  attribute.value(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

屏障属性值。

元素数量: AttribValue == AttribName

默认值: []

值列表: 'sleep'"sleep""sleep""sleep""sleep""sleep", 'spin'"spin""spin""spin""spin""spin"

TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size (输入控制)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

屏障团队规模。

默认值: 1

BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandlebarrier_handle (输出控制)  barrier HBarrier, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

屏障同步对象。

结果

create_barriercreate_barrierCreateBarrierCreateBarrierCreateBarriercreate_barrier 在所有参数正确时返回 2 (H_MSG_TRUE)。如有必要,则抛出异常。

可能的后继

wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrierwait_barrier, clear_barrierclear_barrierClearBarrierClearBarrierClearBarrierclear_barrier

模块

基础