Код: Выделить всё
#include
void func1(vector &somevec1, vector &somevec2, size_t somesize){
//somevec1 and somesize and a bunch of local variables being used to modify somevec2
//somevec1 and somevec2 and somesize are all the same across all threads, but each thread is working on a different part of somevec2
}
vector mainfunc(vector &passingvector){
//a bunch of stuff involving local variables
// A thread is made that uses func1
// Another thread is made that uses func1
//in fact the number of threads being made that uses func1 depends entirely on the size of "passing vector"
//a bunch of other stuff involving local variables
//return the vector
}
Если мне действительно придется об этом беспокоиться, то как мне обойти эту проблему? Я очень новичок в использовании потоков. Придется ли мне использовать мьютексы или семафоры для решения этой проблемы?
Причина, по которой я спрашиваю об этом, заключается в том, что я постоянно получаю ошибку сегмента и пытаюсь выяснить независимо от того, связано ли это с тем, что потоки могут использовать общие переменные в func1. Я пытаюсь использовать GDB, но я новичок в этом, поэтому мне трудно понять, что происходит. Кто-нибудь знает что-нибудь, что может помочь мне определить ошибку сегмента более читаемым способом?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/570 ... nction-are
Мобильная версия