1
我想使用openMP,並且我有這個功能永遠不能同時運行兩次。在另一個世界中,這不會是一個問題:「關鍵」的整個功能
int foo(void){
mutex->lock();
....
mutex->release();
}
我該如何在OpenMP中實現同樣的功能?
我想使用openMP,並且我有這個功能永遠不能同時運行兩次。在另一個世界中,這不會是一個問題:「關鍵」的整個功能
int foo(void){
mutex->lock();
....
mutex->release();
}
我該如何在OpenMP中實現同樣的功能?
用途:
#pragma omp critical (CriticalSection1)
{
// your stuff here
}
編輯
我希望這是更清楚:
int foo(void){
//mutex->lock();
#pragma omp critical (CriticalSection_foo)
{
....
}
//mutex->release();
}
EDIT 2
我伸出的例子包括名爲正如評論者所建議的那樣。圓括號是必要的,參見the Intel OMP documentation with an example.
那麼我在哪裏放置int foo(void)部分?在編程之上?在它下面? – Cheiron
根本不是。 「int foo(void)」部分是你的函數聲明。剛編輯我的答案。 – Sven
給關鍵區域命名不是更好嗎?正如我讀「所有未命名的關鍵指令映射到同一個未指定的名稱」。 –