C ++, как разделять данные между процессами или потоками

У меня есть программа, которая выполняет две разные операции, и я хотел бы поделиться переменными между ними.

На данный момент я использую потоки вместо процессов fork, но у меня возникают проблемы с совместным использованием переменных, даже если я объявил их как изменчивые.

Я попытался использовать ускорение, выполнив:

boost::thread collisions_thread2(boost::bind(function_thread2);

объявив общие переменные как изменчивые, но похоже, что функция function_thread2 () не может видеть изменения в общих переменных.

Я бы хотел сделать что-то вроде:

thread1:

while(true){
//..do somet stuff
check variable1
}

thread2:

while(true){
do some other stuff
check and write on variable1
}

Не могли бы вы предложить мне учебное пособие или метод простого обмена переменной между потоками? Может быть, в этом случае пригодится библиотека boost? Как вы думаете, лучше использовать fork ()?

Я знаю, что мне нужно использовать мьютекс, чтобы избежать критических ситуаций, но я никогда не использовал его.

5
задан Marcus Barnet 29 February 2012 в 19:08
поделиться