create_barrierT_create_barrierCreateBarrierCreateBarriercreate_barrier(算子)
名称
create_barrierT_create_barrierCreateBarrierCreateBarriercreate_barrier — 创建屏障同步对象。
签名
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)
描述
A barrier is a synchronization object blocking a thread until a previous
defined number of threads have reached this barrier.
create_barriercreate_barrierCreateBarrierCreateBarrierCreateBarriercreate_barrier allocates and initializes the barrier object returned
in BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandlebarrier_handle according to the attributes specified in
AttribNameAttribNameAttribNameAttribNameattribNameattrib_name 和 AttribValueAttribValueAttribValueAttribValueattribValueattrib_value.
AttribNameAttribNameAttribNameAttribNameattribNameattrib_name specifies the attribute class and AttribValueAttribValueAttribValueAttribValueattribValueattrib_value
the kind of the barrier. The description beneath lists all barrier kinds
supported by following parameter classes:
- ''""""""""""
empty string sets the default attributes.
- 'type'"type""type""type""type""type"
-
specifies what happens if a thread waits at a barrier:
- 'sleep'"sleep""sleep""sleep""sleep""sleep"
simply suspends the calling thread (default).
- 'spin'"spin""spin""spin""spin""spin"
a fast barrier implementation for short waits
that waits busy.
The TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size argument specifies the number of threads that must
call wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrierwait_barrier before any of them successfully return from
waiting. The value hold in TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size must be greater than zero.
执行信息
- 多线程类型:独立(即使使用独占算子也能并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
AttribNameAttribNameAttribNameAttribNameattribNameattrib_name (输入控制) attribute.name(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Barrier attribute.
默认值:
[]
值列表:
'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)
Barrier attribute value.
元素数量:
AttribValue == AttribName
默认值:
[]
值列表:
'sleep'"sleep""sleep""sleep""sleep""sleep", 'spin'"spin""spin""spin""spin""spin"
TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Barrier team size.
默认值:
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
模块
基础