使用右上角的选项卡切换到不同的编程语言。

使用右上角的选项卡切换到不同的编程语言。

使用右上角的选项卡切换到不同的编程语言。

使用右上角的选项卡切换到不同的编程语言。

par_joinpar_joinParJoinParJoinpar_join并行连接(算子)

名称

par_joinpar_joinParJoinParJoinpar_join — 等待使用 par_start 限定符启动的子线程。

签名

par_join( : : ThreadID : )

Herror par_join(const Hlong ThreadID)

Herror T_par_join(const Htuple ThreadID)

void ParJoin(const HTuple& ThreadID)

static void HOperatorSet.ParJoin(HTuple threadID)

def par_join(thread_id: MaybeSequence[HHandle]) -> None

描述

par_joinpar_joinParJoinParJoinParJoinpar_join 算子用于在调用函数中等待所有已在单独子线程中启动的函数或算子,这些子线程是通过在相应程序行添加 par_start 限定符启动的。待等待的子线程通过传递给 ThreadIDThreadIDThreadIDThreadIDthreadIDthread_id 参数的线程 ID 进行标识。

注意:par_start 并非算子,而是添加在程序行开头的限定符,用于标记需与调用函数并行执行的代码段。其语法为 par_start <ThreadID> : ,后接实际的函数或算子调用。

参数

ThreadIDThreadIDThreadIDThreadIDthreadIDthread_id (输入控制)  thread_id(-array) HTupleMaybeSequence[HHandle]HTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

需要等待的所有子线程的 IDs。

示例(HDevelop)

* start two procedures in separate sub threads
par_start <ThreadID1> : producer_proc()
par_start <ThreadID2> : consumer_proc()
* wait until both procedures have finished
par_join ([ThreadID1, ThreadID2])

结果

如果指定参数的值正确,par_joinpar_joinParJoinParJoinParJoinpar_join 返回 2 ( H_MSG_TRUE )。否则,将抛出一个异常并返回错误代码。

模块

基础