Oracle® Solaris Studio 12.4:OpenMP API 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

4.7.1 Threadprivate 和线程特定的信息

当线程遇到任务调度点时,实现可能会暂停当前任务并安排线程处理另一个任务。该行为意味着任务中的 threadprivate 变量或其他线程特定的信息(如线程数)在任务调度点前后可能会有所不同。

如果暂停的任务为绑定 (tied) 任务,则恢复执行该任务的线程与暂停该任务的线程将是同一线程。因此,恢复该任务后,线程数将保持相同。但是,threadprivate 变量的值可能会更改,原因是可能会安排线程处理另一个任务,这样会在恢复暂停的任务之前修改 threadprivate 变量。

如果暂停的任务为非绑定 (untied) 任务,则恢复执行该任务的线程可能与暂停该任务的线程不同。因此,线程数和 threadprivate 变量的值在任务调度点之前和之后都可能不同。