所以我有多個線程訪問此函數來檢索數據庫信息,它是線程安全的嗎?C++向量是線程安全的嗎?多線程
vector<vector<string> > Database::query(const char* query)
{
pthread_rwlock_wrlock(&mylock); //Write-lock
...
vector<vector<string> > results;
results.push...
pthread_rwlock_unlock(&mylock); //Write-lock
return results;
}
對於編輯 - >有時'修復'>>到>>不是一個好主意,但感謝其餘的。
很難確定你在問什麼。使用像這樣的本地向量是線程安全的,因爲它是在堆棧上創建的。但是我們不能告訴你,如果你的函數是線程安全的。 我可以告訴你,這將是低效的,因爲在構建你的向量的字符串向量之後,你會返回它的一個副本而不是原始的。 – kfsone