Вопросы с тегом «thread-safety»

Фрагмент кода является потокобезопасным, если он управляет структурами данных только таким образом, чтобы обеспечить согласованное выполнение этого кода несколькими потоками. Код может быть потокобезопасным, условно безопасным (требуется взаимное исключение) или небезопасным (может безопасно использоваться только одним потоком).

3
Threadsafe vs повторно въезжающий
Недавно я задал вопрос с заголовком «Является ли malloc потокобезопасным?» , и внутри я спросил: «Маллок возвращается?» У меня создалось впечатление, что все реентерабельные являются потокобезопасными. Это предположение неверно?

3
lock (new object ()) - Культ груза или какой-то сумасшедший «особый случай языка»?
Я просматриваю код, написанный консультантом, и, хотя уже появились десятки красных флажков, я не могу осмыслить следующий фрагмент: private void foo() { if (InvokeRequired) { lock (new object()) { if (m_bar!= null) Invoke(new fooDelegate(foo), new object[] { }); } } else { if(OnBazChanged != null) OnBazChanged(); } } Что здесь …


14
Android - лучший и безопасный способ остановить поток
Я хочу знать, как лучше всего остановить поток в Android. Я знаю, что могу использовать AsyncTaskвместо него и что есть cancel()метод. Я должен использовать Threads в моей ситуации. Вот как я использую Thread: Runnable runnable = new Runnable() { @Override public void run() { //doing some work } }; new …

3
Многопоточная программа зависла в оптимизированном режиме, но нормально работает в -O0
Я написал простую многопоточную программу следующим образом: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } Он ведет себя нормально в режиме отладки в Visual studio или …

3
Гарантирует ли «volatile» что-либо вообще в переносимом коде C для многоядерных систем?
После глядя на кучу из других вопросов и их ответов , я получаю впечатление , что не существует никакого широко распространенного соглашения о том , что «летучий» ключевое слово в C означает точно. Даже сам стандарт не достаточно ясен для того, чтобы все могли понять, что это значит . Среди …

2
Скопировать конструктор с неконстантным аргументом, предложенным правилами безопасности потока?
У меня есть обертка для какого-то унаследованного кода. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &L); return ret;} ... // proper resource management here }; В этом унаследованном коде функция, которая …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.