Неужели, по крайней мере, избегать выбрасывать указатели? И это также помогает, если вам нужно переместить или изменить адрес памяти данных. Если у вас есть указатели на n экземпляров, вам придется отправлять им новый адрес один за другим. Ват, я понял вашу точку зрения :)
ли проблема с несколькими потоками, использующими одно и то же целочисленное расположение памяти между pthreads в программе на C без каких-либо утилит синхронизации?
Чтобы упростить проблему,
Только один поток напишет в целое числоНесколько потоков будут читать целое числоЭто псевдо-C иллюстрирует то, что я думаю
void thread_main(int *a) {
//wait for something to finish
//dereference 'a', make decision based on its value
}
int value = 0;
for (int i=0; i<10; i++)
pthread_create(NULL,NULL,thread_main,&value);
}
// do something
value = 1;
Я предполагаю, что это безопасно, поскольку целое число занимает одно процессорное слово, а чтение / запись в слово должно быть самой атомарной операцией, верно?