Created by Sergei Fomin
almost 9 years ago
|
||
Question | Answer |
Классы потоков POSIX | Joinable - хранят результат своей работы до того момента, пока его кто-то не попросит Detached - завершаясь, умирают "с концами" |
"Убийство" потока POSIX | Фактически поток прекратит свою работу лишь в тот момент, когда будет выполнять системный вызов. И то не все системные вызовы тут учитываются. |
Мьютекс, спин-блокировка, RW-Lock | Мьютекс - взаимное исключение, семафор с 1 значением; Спин-блокировка - как мьютекс, но поток не засыпает, а продолжает опрашивать переменную; RW-Lock - поддерживает shared lock (на чтение) и exclusive lock (на запись) |
Условная переменная | По сути, это событие, в ожидании которого поток может спать. Для операции wait нужен залоченный мьютекс - перед "сном" потока он будет разлочен, а перед пробуждением - снова "залочен" |
Барьер, однократный запуск | Позволяет нескольким потокам начать выполнение с определённой точки, дождавшись всех. Однократный запуск - функция, которая будет запущена лишь один раз одним потоком. |
Функторы и их применение в потоках C++11 | Функтор - класс с перегруженным оператором (). Экземпляр этого класса может использоваться как аргумент для создания потока C++11. |
Рекурсивные мьютексы | Позволяют одному и тому же потоку несколько раз их блокировать и потом столько же раз освободить. |
Unique lock | Способ заблокировать мьютекс так, что при выходе из зоны видимости он автоматически разблокируется. |
Future | Простой способ запустить функцию в отдельном потоке и через некоторое время "забрать" значение, которое она вернула. |
Want to create your own Flashcards for free with GoConqr? Learn more.