У меня есть программа, которая выполняет две разные операции, и я хотел бы обмениваться переменными между ними.
В настоящее время я использую потоки вместо процессов ветвления, но у меня проблемы с разделениемпеременные, даже если я объявил их как volatile.
Я попытался с boost делать:
boost::thread collisions_thread2(boost::bind(function_thread2);
, объявив общие переменные как volatile, но кажется, что функция function_thread2 () не способнаувидеть изменения в общих переменных.
Что я хотел бы сделать, это что-то вроде:
thread1:
while(true){
//..do somet stuff
check variable1
}
thread2:
while(true){
do some other stuff
check and write on variable1
}
Можете ли вы предложить мне учебное пособие или метод для простого обмена переменными между потоками?Может быть, библиотека повышения может быть полезна в этом случае?Как вы думаете, лучше использовать fork ()?
Я знаю, что мне нужно использовать мьютекс, чтобы избежать критических ситуаций, но я никогда не использовал его.