由于各工作线程处在相同的地址空间中,所以OpenMP提供了一些用于同步的指导语句。他们包括:
  ・ master;
  ・ critical(name) ;
  ・ barrier
  ・ atomic
  ・ flush
  ・ ordered
 
  他们的形式如下:

  !$OMP MASTER
   block
  !$OMP END MASTER

  由master和对应的end master语句共同说明。 包含在master和end master中的程序块由主线程执行(线程号为0的线程),其它线程则略过这个程序块,直接执行下面的语句。

  !$OMP CRITICAL[(name)]
   block
  !$OMP END CRITICAL[(name)]

  由critical和end critical语句共同说明。声明由critical和end critical语句包围的程序块为一个临界区。name为临界区对应的锁的名字,注意匹配的critical/end critical必须给出相同的临界区名。当name省略时,申明的是一个无名的临界区,程序中所有的无名临界区共享同一把锁。