一起來學OpenMP(7) 執行緒同步之臨界區

2021-06-01 08:36:50 字數 599 閱讀 7865

一、引言

上一節介紹了openmp中atomic互斥鎖機制的使用用法,本節介紹臨界區互斥鎖機制的使用用法。這裡的臨界區與windows下的criticalsection類似。

二、臨界區宣告方法

#pragma omp critical [(name)] //表示名字可選

//並行程式塊,同時只能有乙個執行緒能訪問該並行程式塊

例如:#prgama omp critical (a)

a = b + c;

三、示例

view plain

#include 

#include // openmp程式設計需要包含的標頭檔案

intmain()  

}  std::cout << "after: "

<< sum << std::endl;  

return

0;  

}  

四、小結

介紹了臨界區critical的用法,critical與atomic的區別在於,atomic僅適用於上一節規定的兩種型別操作,而且atomic所防護的僅為一句**。critical可以對某個並行程式塊進行防護。下一節介紹openmp提供的互斥函式。

一起來學SQL(二)

insert into 語句用於向 中插入新的行。語法 insert into 表名稱 values 值1,值2,也可以指定所要插入資料的列 insert into table name 列1,列2,values 值1,值2,e.g.1 插入新的行 insert into persons value...

一起來學SQL(三)

create database 用於建立資料庫。sql create database 語法 create database database name create table 語句用於建立資料庫中的表。sql create table 語法 create table 表名稱 列名稱1 資料型別,...

一起來學ES Bulk剖析

restcontrollor接收請求,dispatch到對應的handler上 baseresthandler呼叫restbulkaction進行前置處理,請求轉為bulkrequest nodeclient根據actionmodule註冊的對映關係,找到transportbulkaction作為t...