Изменения

Перейти к: навигация, поиск

Участник:Qwerty787788/плюсы3сем

998 байт добавлено, 01:21, 18 января 2013
multithreading
== multithreading ==
=== зачем это нужно ===
Ну вроде бы очевидно: увеличить скорость выполнения программы. Однако, стоит понимать, что иногда скорость может только уменьшится (в интернете есть куча примеров).
=== понятие race condition ===
Стандартный пример, как не нужно использовать multithreading. Пусть есть некоторые общие данные, а два потоки одновременно пытаются выполнить с ними какие-то операции. Например, есть переменная x = 0, два потока пытаются увеличить ее на 1. В итоге может получится как 1, так и 2 (так и вообще непонятно что, см. [http://en.wikipedia.org/wiki/Race_condition]). Вывод: нужно lock'ать данные перед тем, как их использовать.
=== atomic operations ===
=== mutexes (mutex, recuirsive_mutex, shared_mutex) ===
81
правка

Навигация