Запитання з тегом «mutex»

Мутекс ("взаємне виключення") - це механізм забезпечення цілісності, коли доступ до одних і тих же даних або ресурсів (зокрема, змінений) одночасно з декількох потоків.

6
Приклад boost shared_mutex (кілька читання / одна запис)?
У мене є багатопотокова програма, якій доводиться часто читати деякі дані, а періодично ці дані оновлюються. Зараз mutex зберігає доступ до цих даних безпечним, але це дорого, тому що я хотів би, щоб декілька потоків могли читати одночасно, і блокувати їх лише тоді, коли потрібно оновлення (оновлення потоку може чекати, …


8
Чи є Mutex на Java?
Чи є об'єкт Mutex в Java або спосіб створити його? Я прошу, тому що об'єкт Semaphore, ініціалізований з 1 дозволом, не допомагає мені. Подумайте про цей випадок: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } якщо виняток трапляється при першому придбанні, вивільнення в блоці вилову …


7
Чи потрібні Mutexes у JavaScript?
Я бачив це посилання: Реалізація взаємного виключення в JavaScript . З іншого боку, я прочитав, що в JavaScript немає ниток, але що це означає? Коли відбуваються події, де в коді вони можуть перерватися? І якщо в JS немає ниток, чи потрібно використовувати мютекси в JS чи ні? Зокрема, мені цікаво …

4
PTHREAD_MUTEX_INITIALIZER проти pthread_mutex_init (& mutex, param)
Чи є якась різниця між pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Або pthread_mutex_t lock; pthread_mutex_init ( &lock, NULL); Чи достатньо я безпечний, якщо використовую лише перший метод? ПРИМІТКА. Моє запитання здебільшого стосується дуже маленьких програм, де щонайбільше я буду підключати декілька клієнтів до сервера та вирішувати їх запити за допомогою робочих потоків.
90 c  ubuntu  pthreads  mutex 


3
Виклик pthread_cond_signal без блокування mutex
Я десь читав, що нам слід заблокувати мьютекс перед викликом pthread_cond_signal і розблокувати мьютекс після його виклику: Підпрограма pthread_cond_signal () використовується для сигналізації (або пробудження) чергового потоку, який очікує на змінну умови. Його слід викликати після того, як mutex заблоковано, і він повинен розблокувати мьютекс, щоб завершити процедуру pthread_cond_wait (). …

2
Python багатопроцесорний безпечний запис у файл
Я намагаюся вирішити велику числову проблему, яка включає безліч підпроблем, і я використовую багатопроцесорний модуль Python (зокрема Pool.map), щоб розділити різні незалежні підзадачі на різні ядра. Кожна підзадача включає обчислення безлічі підпроблем, і я намагаюся ефективно запам'ятати ці результати, зберігаючи їх у файлі, якщо вони ще не були обчислені в …

4
Правильне використання мьютексів у Python
Я починаю з декількох потоків у python (або принаймні можливо, що мій сценарій створює кілька потоків). чи був би цей алгоритм правильним використанням Mutex? Я ще не тестував цей код, і він, мабуть, навіть не буде працювати. Я просто хочу, щоб processData запускався в потоці (по одному), а основний цикл …

7
Що є більш ефективним, базовим блокуванням мьютексу чи атомним цілим числом?
Для чогось простого, як лічильник, якщо кількість потоків буде збільшувати кількість. Я читав, що блокування mutex може знизити ефективність, оскільки потоки повинні чекати. Отже, для мене атомний лічильник був би найефективнішим, але я читав, що зсередини це в основному замок? Тож, мабуть, мене бентежить, як будь-який може бути ефективнішим за …

2
C ++ 11: чому std :: condition_variable використовує std :: unique_lock?
Я трохи заплутаний у ролі, std::unique_lockколи працюю з std::condition_variable. Наскільки я зрозумів документацію , std::unique_lockце, в основному, роздутий захисний кожух із можливістю поміняти стан між двома замками. Я досі використовував pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)для цього (мабуть, це те, що використовує STL на posix). Для цього потрібен мьютекс, а не замок. …

1
Як може std :: lock_guard бути швидшим, ніж std :: mutex :: lock ()?
Я сперечався з колегою, про lock_guard, і він запропонував, щоб lock_guard був повільніше повільний, ніж mutex :: lock () / mutex :: unlock () через вартість екземпляра та unistantiate класу lock_guard. Тоді я створив цей простий тест і, несподівано, версія з lock_guard майже в два рази швидша за версію з …
9 c++  mutex 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.