前言
OpenMP通过在串行程序中插入编译制导指令, 来实现并行化, 支持OpenMP的编译器可以识别, 处理这些指令并实现对应的功能....开始时每个线程会分配到较大的迭代块, 之后分配到的迭代块的大小会逐渐递减...., 但是在打印时是以串行顺序的形式打印.
critical
临界区(critical), 临界区保证在任意一个时间段内只有一个线程执行该区域中的代码, 一个线程要进入临界区必须要等待临界区处于空闲状态,...下面是语法形式
#pragma omp critical [(name)]
structured block
其中name是为临界区指定的一个名字...., 即不会被多个线程同时更新, 但是不会保证func函数的执行是原子的, 即多个线程可以同时执行func函数, 如果要使func的执行也是原子的, 可以使用临界区.
locks
互斥锁, 提供了一个更底层的机制来处理同步的问题