private,firstprivate,lastprivate

主要思想

private/firstprivate/lastprivate都是子句,用于表示并行区域内的变量的数据范围属性。
private表示并行区域team内的每一个线程都会产生一个并行区域外同名变量的共享变量,且和共享变量没有任何关联;
firstprivaet在private的基础上,在进入并行区域时(或说每个线程创建时,或副本变量构造时),会使用并行区域外的共享变量进行一次初始化工作;
lastprivate在private的基础上,在退出并行区域时,会使用并行区域内的副本的变量,对共享变量进行赋值,由于有多个副本,OpenMP规定了如何确定使用哪个副本进行赋值。
另外,private不能和firstprivate/lastprivate混用于同一个变量,firstprivate和lastprivate可以对同一变量使用,效果为两者的结合。
具体见:https://www.cnblogs.com/DarrenChan/p/6853556.html
推荐:https://blog.csdn.net/gengshenghong/article/details/6985431

see

谁也不能随随便便成功,它来自彻底的自我管理与毅力。

猜你喜欢

转载自blog.csdn.net/beijiafei/article/details/82960345