1
我需要調用返回唯一ID的功能,互斥與並行線程
int getid()
{
static id=0;
id++;
return id;
}
多個線程需要調用這個函數,我的問題是我不知道,我需要鎖定互斥,
我需要之前,並呼籲像下面
pthread_mutex_lock(&id);
int id = getid()
pthread_mutex_unlock(&id);
有人可以幫助我與請功能後鎖定?
我正是這樣做了,我在想是返回newid的,我的意思是這樣的,當函數被調用然後到達返回時,那麼它被再次調用,會影響第一次返回嗎? – user1832809
由於newId不是一個靜態變量,它將位於調用線程的堆棧中。每個線程都有獨立的堆棧,因此它們不會互相干擾。 – Bovinedragon
謝謝,這樣可以使id成爲一個全局變量,在這種情況下,我將不會遇到線程中的靜態不安全問題? – user1832809